Skip to main content
POST
/
api
/
companies
/
{companyId}
/
imports
/
contacts
curl -X POST https://api.disparador.com/api/companies/1/imports/contacts \
  -H "Content-Type: application/json" \
  -H "X-Access-Token: seu-access-token" \
  -d '{
    "name": "Import via Push",
    "description": "Importada via webhook",
    "dedupe": true,
    "contacts": [
      { "phoneNumber": "+5511999999999", "name": "Alice" },
      { "phoneNumber": "+5511888888888", "name": "Bob" }
    ]
  }'
{
  "jobId": 123,
  "status": "PENDING",
  "submittedAt": "2025-10-08T12:00:00Z"
}
Use este endpoint para integrar fontes externas (n8n, Zapier, CRMs) que empurram contatos para o Disparador.

Headers

X-Access-Token
string
required
Token de acesso da empresa
Content-Type
string
required
application/json

Path Parameters

companyId
number
required
ID da empresa (deve corresponder ao token)

Body (simples)

name
string
Nome do UserDatabase que será criado (se omitido, um nome padrão será gerado)
description
string
Descrição do banco
dedupe
boolean
Se true, telefones duplicados serão removidos
contacts
array
required
Array de objetos com os contatos com pelo menos o campo phoneNumber.
curl -X POST https://api.disparador.com/api/companies/1/imports/contacts \
  -H "Content-Type: application/json" \
  -H "X-Access-Token: seu-access-token" \
  -d '{
    "name": "Import via Push",
    "description": "Importada via webhook",
    "dedupe": true,
    "contacts": [
      { "phoneNumber": "+5511999999999", "name": "Alice" },
      { "phoneNumber": "+5511888888888", "name": "Bob" }
    ]
  }'

Body (genérico)

rows
array
required
Array de objetos, cada objeto representa uma linha (mapa de coluna -> valor). Garanta que exista uma coluna de telefone (ex.: phone ou phoneNumber) para que o sistema normalize e valide.
curl -X POST "https://api.disparador.com/api/companies/1/imports/contacts/generic?async=true" \
  -H "Content-Type: application/json" \
  -H "X-Access-Token: seu-access-token" \
  -d '{
    "name": "Import genérico",
    "description": "import gen",
    "dedupe": true,
    "rows": [
      { "phone": "+5511999999999", "name": "Alice", "cidade": "SP" },
      { "phone": "+5511888888888", "name": "Bob", "cidade": "RJ" }
    ]
  }'

Responses

jobId
number
Quando ?async=true o endpoint retorna o jobId persistido.
status
string
Status inicial do job (PENDING) quando submetido async.
error
string
Mensagem de erro quando aplicável
{
  "jobId": 123,
  "status": "PENDING",
  "submittedAt": "2025-10-08T12:00:00Z"
}

Observações e boas práticas

  • Para envios assíncronos, consulte a tabela import_jobs para verificar progresso e possíveis erros.
  • Limites e validações de número: todas as entradas de telefone passam por normalização (use +55 quando aplicável).
  • Se sua integração enviar grandes volumes, prefira usar async=true e submeter em lotes.