Criar ou atualizar contato (upsert)
v1.0.0https://api.growthaisystem.com/api/v1/contacts/upsert- Exige
Authorization: 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.
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/interactionsconta um). 0 = nenhum. Mesma fonte defirstHumanTouchAt/lastHumanTouchAt; só vem emGET /contacts/{id}.- mín. 0
- firstHumanTouchChannelstring | nullpode faltar
O canal do PRIMEIRO toque humano — o mesmo registro de
firstHumanTouchAt, no vocabulário dechannelde/interactions(whatsapp,instagram,facebook,call,email,note…). Dois toques no mesmo instante: vale o de menoridde/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