Motyw
30. Integracje z innymi CRM i narzędziami
Poziom trudności: Zaawansowany
Czas: 20 minut
Wprowadzenie
GoHighLevel może integrować się z innymi systemami - Zapier, Make, Salesforce, HubSpot. Synchronizuj dane, automatyzuj przepływ informacji między narzędziami.
Dlaczego integracje?
- Centralizacja: Wszystkie dane w jednym miejscu
- Automatyzacja: Brak manual data entry
- Sync: Real-time synchronizacja
- Migracja: Łatwe przejście z innych CRM
Krok 1: Zapier integration
Najpopularniejsza integracja - 5000+ apps!
Setup:
- Settings → Integrations → Zapier
- Connect Account
- Authorize GoHighLevel
Przykład: New contact → Google Sheets
TRIGGER (GoHighLevel):
New Contact Created
ACTION (Google Sheets):
Add row to spreadsheet
DATA MAPPING:
Column A: {{contact.firstName}}
Column B: {{contact.lastName}}
Column C: {{contact.email}}
Column D: {{contact.phone}}
Column E: {{contact.tags}}
Column F: {{contact.createdAt}}Przykład: Gmail → GoHighLevel contact
TRIGGER (Gmail):
New email received with label "Lead"
ACTION (GoHighLevel):
Create/Update Contact
DATA:
Email: {{email.from}}
Name: {{email.fromName}}
Source: "Gmail"
Tag: "email-lead"
Note: {{email.body}}Krok 2: Make (Integromat) integration
Bardziej zaawansowane scenariusze:
Scenario: Multi-step lead enrichment
1. TRIGGER: New contact in GHL
↓
2. HTTP Request: Clearbit API (enrich company data)
↓
3. Update GHL Contact:
- Company name
- Industry
- Company size
- LinkedIn profile
↓
4. CONDITION: If company size > 100
↓
5. Create Opportunity (high-value)
↓
6. Notify Slack: "#sales-hot-leads"Krok 3: Native CRM integrations
Salesforce sync:
Use case: Duża firma używa Salesforce, chce dodać GHL do marketingu
Setup:
- Settings → Integrations → Salesforce
- OAuth connect
- Field mapping:
GoHighLevel → Salesforce
────────────────────────
Email → Email
First Name → FirstName
Last Name → LastName
Phone → Phone
Tags → CampaignMember
Custom.NIP → Custom__NIP__c
Opportunity → Opportunity- Sync direction:
- ☑ GHL → Salesforce (one-way)
- ☐ Salesforce → GHL (optional)
- ☑ Real-time sync
HubSpot sync:
GoHighLevel + HubSpot Integration:
SCENARIO A: Marketing in GHL, Sales in HubSpot
- New leads in GHL → sync to HubSpot CRM
- Opportunities in HubSpot → trigger GHL workflows
SCENARIO B: Full migration from HubSpot
- Export all HubSpot contacts → Import to GHL
- Map custom fields
- Sync historical data (emails, notes)Krok 4: API custom integration
Full control - build your own:
Example: Sync to custom CRM
javascript
// Webhook endpoint in your CRM
const GHL_WEBHOOK_SECRET = "your_secret";
app.post('/webhooks/ghl-contact', async (req, res) => {
// Verify webhook signature
const signature = req.headers['x-ghl-signature'];
if (!verifySignature(req.body, signature, GHL_WEBHOOK_SECRET)) {
return res.status(401).send('Invalid signature');
}
const contact = req.body;
// Sync to your CRM
await yourCRM.upsertContact({
email: contact.email,
firstName: contact.firstName,
lastName: contact.lastName,
phone: contact.phone,
source: 'GoHighLevel',
externalId: contact.id
});
res.status(200).send('OK');
});GHL → Your system (push):
1. GHL Workflow
Trigger: Contact created/updated
Action: Webhook POST to your endpoint
2. Your API receives data
Process & store in your DB
3. Response 200 OK → GHL marks as syncedYour system → GHL (pull):
javascript
// Sync from your CRM to GHL
async function syncContactsToGHL() {
const contacts = await yourCRM.getUpdatedContacts();
for (const contact of contacts) {
// Check if exists in GHL
const existing = await ghlAPI.lookupContact(contact.email);
if (existing) {
// Update
await ghlAPI.updateContact(existing.id, {
phone: contact.phone,
tags: contact.tags,
customField: { ...contact.customFields }
});
} else {
// Create
await ghlAPI.createContact({
email: contact.email,
firstName: contact.firstName,
lastName: contact.lastName,
source: 'Your CRM',
tags: contact.tags
});
}
}
}
// Run every 5 minutes
setInterval(syncContactsToGHL, 5 * 60 * 1000);Krok 5: E-commerce integrations
Shopify + GoHighLevel:
TRIGGER: New order in Shopify
↓
1. Create/Update contact in GHL
- Email from order
- Name
- Phone
- Tag: "customer"
- Custom field: "Last purchase date"
- Custom field: "Total spent"
↓
2. Trigger GHL workflow:
- Send thank you email
- Add to "Post-purchase sequence"
- Create task for fulfillment teamWooCommerce sync:
javascript
// WordPress plugin hook
add_action('woocommerce_order_status_completed', function($order_id) {
$order = wc_get_order($order_id);
// Send to GoHighLevel
wp_remote_post('https://rest.gohighlevel.com/v1/contacts/', [
'headers' => [
'Authorization' => 'Bearer ' . GHL_API_KEY,
'Content-Type' => 'application/json'
],
'body' => json_encode([
'email' => $order->get_billing_email(),
'firstName' => $order->get_billing_first_name(),
'lastName' => $order->get_billing_last_name(),
'phone' => $order->get_billing_phone(),
'tags' => ['woocommerce-customer'],
'customField' => [
'last_order_id' => $order_id,
'last_order_total' => $order->get_total(),
'last_order_date' => date('Y-m-d')
]
])
]);
});Krok 6: Calendar integrations
Google Calendar sync:
Settings → Integrations → Google Calendar
SYNC OPTIONS:
☑ Appointments → Google Calendar
☑ Tasks → Google Calendar
☐ Opportunities deadline → Calendar event
CALENDAR SELECTION:
Primary Calendar: "GoHighLevel"
Color code: BlueBenefits:
- Zobacz GHL appointments w Google Calendar
- 2-way sync (update in either place)
- Mobile access przez Google Calendar app
Krok 7: Migration from other CRMs
HubSpot → GoHighLevel migration:
Phase 1: Export data
- HubSpot → Contacts → Export all
- Download CSV (contacts, companies, deals)
- Clean data w Excel
Phase 2: Prepare import
csv
first_name,last_name,email,phone,company,tags,custom_lifecycle_stage
Jan,Kowalski,jan@ex.com,+48123,Tech Inc,lead;hubspot,SQL
Anna,Nowak,anna@ex.com,+48456,Marketing Co,customer;vip,CustomerPhase 3: Import to GHL
- Contacts → Import CSV
- Map fields:
custom_lifecycle_stage→ Tagcompany→ Custom field "Firma"
- Import
Phase 4: Verify
- Check contact count
- Verify custom fields populated
- Test workflows
- Train team
Salesforce → GoHighLevel:
RECOMMENDED APPROACH:
1. Run both systems parallel (2 weeks)
2. Sync Salesforce → GHL (one-way) via Zapier
3. Marketing campaigns in GHL
4. Sales still in Salesforce
5. Gradually shift sales to GHL
6. After 1 month: GHL onlyKrok 8: Two-way sync considerations
Challenges:
Conflict resolution:
Scenario: Contact updated in beide systems simultaneously
GHL (10:00): Email changed to jan.new@example.com
Salesforce (10:01): Email changed to jan.old@example.com
Which wins?Solutions:
- Master system: Jedna strona wygrywa (np. GHL master)
- Timestamp: Najnowsza zmiana wygrywa
- Manual review: Flag conflicts for human decision
Best practice: Avoid 2-way sync if possible. Choose master system.
Integration patterns
Pattern 1: Hub model
GHL (Hub)
/ | \
/ | \
Zapier API Shopify
| | |
Gmail Sheets FacebookPattern 2: Pipeline model
Website Form → Zapier → GHL → Salesforce → Billing SystemPattern 3: Event-driven
GHL Event: Contact created
→ Trigger webhooks to multiple systems simultaneously
→ Each system processes independentlyTroubleshooting
Sync delays:
- Zapier: 1-15 min delay (depending on plan)
- API: Real-time (<1 sec)
- Native integrations: 5-10 min
Duplicate contacts:
- Use email as unique ID
- Dedup після importu
- Prevent duplicates on import (update existing)
Failed syncs:
- Check API limits (rate limiting)
- Verify permissions/OAuth tokens
- Review error logs w Zapier/Make
Podsumowanie
✅ Nauczyłeś się:
- Integrować GHL z Zapier i Make
- Sync z Salesforce, HubSpot
- Budować custom API integrations
- Łączyć z e-commerce (Shopify, Woo)
- Migrować dane z innych CRM
To koniec sekcji CRM! 🎉
Następna sekcja: 31. Konfiguracja domeny email
