Verboo

CRM — Upsert Contact

A integração CRM permite criar ou atualizar contatos automaticamente durante a conversa, sem intervenção humana. A operação é sempre um "upsert" — se o contato já existe (pelo telefone ou e-mail), é atualizado; caso contrário, é criado.

Configuração

json
{
  "type": "CRM",
  "subtype": "UPSERT_CONTACT",
  "name": "nomeDoCliente",
  "phone": "telefoneDoCliente",
  "email": "emailDoCliente",
  "company": "empresaDoCliente"
}

Campos Disponíveis

Todos os campos são opcionais individualmente, mas recomenda-se ao menos name e phone ou email para identificação.

Dados de Identificação

Campo Tipo Descrição
name string Nome completo do contato
identity string CPF, CNPJ ou documento de identificação
phone string Telefone (usado como chave de busca no upsert)
email string E-mail

Dados Profissionais

Campo Tipo Descrição
company string Nome da empresa onde trabalha
position string Cargo/função

Dados Pessoais

Campo Tipo Descrição
birthday string Data de nascimento (ex: 1990-05-20)

Endereço

Campo Tipo Descrição
zipCode string CEP
country string País
state string Estado (UF)
city string Cidade
district string Bairro
street string Logradouro
number string Número
complement string Complemento

Substituição de Parâmetros

Os valores dos campos devem ser o nome exato do parâmetro definido no gatilho — sem $, sem {{}}. A plataforma substitui automaticamente.

Definição do trigger:

json
{
  "name": "registrar_lead",
  "parameters": {
    "properties": {
      "nomeCliente": { "type": "string", "description": "Nome completo do cliente" },
      "emailCliente": { "type": "string", "description": "E-mail" },
      "empresaCliente": { "type": "string", "description": "Empresa" },
      "cargoCliente": { "type": "string", "description": "Cargo/função" }
    },
    "required": ["nomeCliente", "emailCliente"]
  }
}

Configuração da ação CRM:

json
{
  "type": "CRM",
  "subtype": "UPSERT_CONTACT",
  "name": "nomeCliente",
  "email": "emailCliente",
  "company": "empresaCliente",
  "position": "cargoCliente"
}

Note que nomeCliente (sem $) faz referência ao parâmetro extraído pelo LLM.


Exemplo Completo: Captura de Lead em Vendas

Prompt do assistente:

Você é um assistente de pré-vendas. Após entender a necessidade do cliente,
colete nome completo, e-mail corporativo e o nome da empresa.
Depois de coletar, registre automaticamente no CRM.

Gatilho:

json
{
  "name": "registrar_lead_qualificado",
  "description": "Registra o lead no CRM após coletar os dados necessários. Use quando tiver nome, e-mail e empresa do cliente.",
  "parameters": {
    "properties": {
      "nome": { "type": "string" },
      "email": { "type": "string" },
      "empresa": { "type": "string" },
      "interesse": {
        "type": "string",
        "enum": ["starter", "growth", "enterprise"]
      }
    },
    "required": ["nome", "email", "empresa"]
  },
  "action": {
    "type": "CRM",
    "subtype": "UPSERT_CONTACT",
    "name": "nome",
    "email": "email",
    "company": "empresa"
  },
  "interpretResponse": false
}

O campo interesse é extraído pelo LLM mas não vai para o CRM — seria enviado via webhook separado ou usado na resposta.


Combinando com Webhook

Para aproveitar melhor os dados, use o CRM junto com um Webhook num mesmo gatilho ou em gatilhos sequenciais:

  1. Gatilho 1: CRM / UPSERT_CONTACT — registra o contato
  2. Gatilho 2: WEBHOOK — notifica o time de vendas via Slack/e-mail

Isso é possível configurando o MaxInteractions = 2 no assistente.