Integração GoHighLevel (GHL)
Como integrar agentes Triadeflow com GoHighLevel CRM. GHL é o CRM padrão para clientes com necessidades complexas, agências revendendo serviço, e operações em escala.
Quando usar GHL
- Cliente é agência ou tem múltiplas operações
- Precisa de calendário nativo, automações avançadas, snapshots
- Precisa de A2P 10DLC compliance (US)
- Volume alto de mensagens (>50k/mês)
- White-label SaaS desejado
Para clientes brasileiros simples e PMEs, Kommo costuma ser melhor escolha.
Provider de mensageria
GHL usa Stevo como provider WhatsApp (WhatsApp Business API oficial integrado ao GHL). Detalhes em .claude/integrations/stevo.md.
Arquitetura GHL
GHL tem hierarquia de 3 níveis:
Agency (Triadeflow ou parceira)└── Sub-Account (cliente final, ex: USA Salus) ├── Pipelines ├── Funnels ├── Calendars ├── Workflows └── Custom ValuesQuando criar tenant em GHL, normalmente é uma sub-account dentro da agência da Triadeflow ou de uma parceira.
Setup do tenant
1. Acessos
- Location ID (sub-account ID)
- API Key (location-level, não agency-level para isolamento)
- Pipeline ID e Stage IDs
- Calendar IDs (se agendamento)
- Custom Field IDs
2. Pipeline standard Triadeflow
Replicar estrutura similar ao Kommo:
crm: type: ghl location_id: LOC_123ABC api_token: ${TENANT_GHL_TOKEN} pipeline_id: PIPE_xyz stages: inbound: stage_001 qualificado: stage_002 agendado: stage_003 convertido: stage_004 perdido: stage_0053. Custom Fields
GHL tem dois tipos:
- Contact Custom Fields: dados do contato
- Opportunity Custom Fields: dados da oportunidade no funil
Criar via API ou UI, anotar IDs:
crm: contact_fields: convenio: "abc-123" cidade: "abc-456" opportunity_fields: valor_estimado: "xyz-111" motivo_perda: "xyz-222"4. Calendar (se agent-agendamento)
GHL tem sistema próprio de calendário. Configurar:
- Calendar ID
- Slot duration (ex: 30min)
- Slot interval
- Available hours
- Buffer time
- Timezone
calendar: type: ghl_native calendar_id: CAL_xyz slot_duration_min: 30 buffer_min: 10 advance_booking_days: 305. Workflows GHL para automação reversa
Workflow GHL pode ser triggered pelo agente para:
- Enviar email de confirmação
- Atribuir tag
- Notificar humano via SMS
- Disparar sequência de nurturing se lead esfria
Padrão: agente cria workflow trigger via API quando ação relevante acontece.
Operações comuns no código
Criar contato + opportunity
from triadeflow_core.crm.ghl import GHLClient
client = GHLClient(config.crm)
# Cria contatocontact_id = await client.create_contact( name=user_name, phone=user_phone, custom_fields={"abc-123": "Bradesco"}, tags=["agent_sdr", "whatsapp_inbound"])
# Cria opportunity no pipelineopp_id = await client.create_opportunity( contact_id=contact_id, pipeline_id=config.crm.pipeline_id, stage_id=config.crm.stages["inbound"], monetary_value=2500, # estimado custom_fields={"xyz-111": 2500})Mover stage
await client.move_opportunity( opportunity_id=opp_id, stage_id=config.crm.stages["qualificado"])Disparar workflow
await client.trigger_workflow( workflow_id="wf_envia_link_agendamento", contact_id=contact_id,)Booking via calendar nativo
slot = await client.find_available_slot( calendar_id=config.calendar.calendar_id, after=datetime.now(), duration_min=30,)
booking = await client.create_appointment( calendar_id=config.calendar.calendar_id, contact_id=contact_id, start_time=slot.start, title="Avaliação inicial - {nome}", notes="Agendado via WhatsApp pelo agente")A2P 10DLC compliance (clientes US)
Para tenants nos EUA enviando SMS, precisa registro 10DLC:
- Brand registration (CIK ou DUNS)
- Campaign registration (use case, sample messages)
- CNAM (Caller ID name) verification
- Voice Integrity setup
- Terms of Service em URL pública
Documentação completa: caso real do USA Salus está documentado em .claude/examples/compliance/usa-salus-a2p10dlc.md.
Erros comuns
API rate limit
GHL limita ~100 req/min por location. Throttle automático no client.
Custom field não aparece
Custom fields levam alguns segundos pra propagar após criação. Cache localmente o mapping ID → name.
Token de location vs agency
Para operações de tenant, sempre use location-level token. Agency-level tem permissão demais e expõe outros tenants.
Stages renomeados
Cliente às vezes renomeia stages. Use IDs no código, nunca nomes.
Snapshots GHL
Snapshots são templates pré-configurados de funnels, workflows e campaigns. Triadeflow tem snapshots prontos para cada tipo de agente:
triadeflow-sdr-snapshot.ziptriadeflow-suporte-snapshot.ziptriadeflow-agendamento-snapshot.zip
Aplicar snapshot acelera setup novo em ~70%. Hospedados em Google Drive da Triadeflow.
Marketplace App (futuro)
Existe planejamento para construir Triadeflow App no GHL Marketplace. Vantagens:
- Cliente instala em 1 clique
- Renovação automática (revenue share com GHL)
- Visibilidade no marketplace
Status atual: backlog (Tier 4 prioridade).
Referências internas
- USA Salus — caso completo A2P 10DLC documentado
- Grupo Camarmo — proposta WhatsApp Official + GHL
- Talentus Digital — agência usando GHL como white-label
Detalhes em .claude/examples/integrations/.
Versão: 1.0