Criar negócio
`stageId` ausente = primeiro estágio aberto do funil. Aceita `Idempotency-Key`. `source` é o canal DESTA entrada (ex.: youtube, lp, trafego) e `utmSource`/`utmMedium`/`utmCampaign`/`utmTerm`/`utmContent` as UTMs DESTA entrada — gravados no negócio, nunca herdados do contato. `source` ausente cai em `utmSource`; nenhum dos dois = `source: null`.
stageId ausente = primeiro estágio aberto do funil. Aceita Idempotency-Key. source é o canal DESTA entrada (ex.: youtube, lp, trafego) e utmSource/utmMedium/utmCampaign/utmTerm/utmContent as UTMs DESTA entrada — gravados no negócio, nunca herdados do contato. source ausente cai em utmSource; nenhum dos dois = source: null.
Autorização
apiKey Chave de API (gos_…)
Em: header
Corpo da requisição
application/json
Definições TypeScript
Use o tipo request body no TypeScript.
Corpo da resposta
curl -X POST "https://example.com/opportunities" \ -H "Content-Type: application/json" \ -d '{ "contactId": "string", "pipelineId": "string", "title": "string" }'Buscar negócio por id
Além dos campos de sempre, traz (issue #728) `firstHumanTouchAt`/`lastHumanTouchAt` — primeiro/último `actor:"user"` do contato deste negócio, a partir da CRIAÇÃO dele (nunca herda toque de um negócio anterior do mesmo contato) — e `lastActivityAt`, a Ação mais recente do ledger que mira este negócio ou uma atividade dele (nota, tarefa, reunião). Todos `null` = ainda não aconteceu. Só aparecem aqui, nunca em `GET /opportunities`.
Escrever campos personalizados do negócio
Merge por fieldKey (só as chaves enviadas). Chave desconhecida = 400.