Pular para o conteúdo
Contatos

Criar ou atualizar contato (upsert)

v1.0.0
POSThttps://api.growthaisystem.com/api/v1/contacts/upsert
  • ExigeAuthorization: Bearer gos_…— Chave de API (gos_…)· escoposcontacts.write

Dedup telefone-primeiro/e-mail-depois (§9.4). Achou: atualiza preenchendo (nome só preenche vazio; tags são adicionadas; nada é apagado). Não achou: cria. Contato na Lixeira não conta: com o telefone ou o e-mail de um excluído, o upsert CRIA um contato novo (o excluído fica na Lixeira).

Corpo da requisição

application/jsonobrigatório
  • namestring | nullopcional
    • tamanho máx. 200
  • phonestring | nullopcional
    • tamanho máx. 80
  • emailstring | nullopcional
    • tamanho máx. 200
  • companystring | nullopcional
    • tamanho máx. 200
  • tagsstring[]opcional
    • itens máx. 10

Respostas

11 respostas documentadas — o código, o que ele significa nesta rota e a forma do corpo.

200Deu certoapplication/json

Achou um contato pelo telefone (ou pelo e-mail) e atualizou: created: false. Também é o status quando a Idempotency-Key repete — aí vem idempotency_replay: true.

V1ContactUpsertado

  • idstring
  • namestring
  • phonestring | null
  • emailstring | null
  • companystring | null
  • companyIdstring | null
  • rolestring | null
  • cpfstring | null
  • notesstring | null
  • tagsstring[]
  • statusstring
    • um de"active""archived""merged"
  • ownerUserIdstring | null
  • originstring
  • customFieldsobjeto livre
    • chave string
    • valor qualquer valor JSON
  • createdAtstring
  • updatedAtstring
  • urlstring
    • sourcestring | null
    • mediumstring | null
    • campaignstring | null
    • termstring | null
    • contentstring | null
  • firstHumanTouchAtstring | nullpode faltar
  • lastHumanTouchAtstring | nullpode faltar
  • humanTouchCountintegerpode faltar

    Quantos toques humanos este contato recebeu (cada mensagem, ligação, e-mail ou nota com actor: "user" em /interactions conta um). 0 = nenhum. Mesma fonte de firstHumanTouchAt/lastHumanTouchAt; só vem em GET /contacts/{id}.

    • mín. 0
  • firstHumanTouchChannelstring | nullpode faltar

    O canal do PRIMEIRO toque humano — o mesmo registro de firstHumanTouchAt, no vocabulário de channel de /interactions (whatsapp, instagram, facebook, call, email, note…). Dois toques no mesmo instante: vale o de menor id de /interactions. null = nunca houve toque humano.

  • createdboolean

    true = não havia match e o contato foi criado agora; false = um contato existente foi atualizado.

  • idempotency_replaybooleanpode faltar