Todos os eventos enviados via webhook pela Triction, com o objeto enviado em cada um.
As webhooks são gerenciadas via API: você cria, atualiza, lista e remove
suas configurações pelos endpoints de webhook. Comece por
Criar um webhook.
A Triction envia webhooks para uma URL configurada por você sempre que algo
relevante acontece na conta (um card é criado, um contato é atualizado, uma
tarefa é executada, etc.). Assim você mantém sistemas externos sincronizados em
tempo real, sem ficar consultando a API.
Como o webhook é entregue
Toda notificação é um HTTP POST para a callbackUrl configurada, com o
seguinte formato:
| Item | Valor |
|---|---|
| Método | POST |
| Cabeçalho | x-triction-access-token: <verificationToken da sua configuração> |
| Content-Type | application/json |
| Timeout por tentativa | 10 segundos |
| Reenvios | até 13 tentativas, com backoff exponencial (começa em 10s) |
O corpo sempre tem a mesma envelope (envelope de entrega):
{
"entity": "card",
"event": "CREATED",
"data": { }
}
entity— a entidade que gerou o evento (ex.:card,contact,company).event— o tipo do evento (ex.:CREATED,UPDATED,MOVED).data— o objeto da entidade que disparou o evento (descrito por entidade abaixo).
Valide a origem da chamada conferindo o cabeçalho
x-triction-access-tokencontra o
verificationTokenque você definiu ao criar a configuração de webhook.
Os campos presentes em
datapodem variar conforme a operação: relações(etiquetas, contato, empresa, etc.) só aparecem quando estavam carregadas no
momento do disparo. Os campos de coluna da entidade (escalares) estão sempre
presentes. Campos nulos podem vir comonullou omitidos.
Como assinar os eventos
Cada configuração de webhook vale para uma entidade e uma lista de
eventos dessa entidade. As configurações (listar eventos válidos, criar, listar,
atualizar e remover) são gerenciadas pela API — os endpoints ficam na
API Reference, na seção Webhooks.
Só é possível ter uma configuração ativa por entidade. Para receber vários
eventos da mesma entidade, inclua todos eles no campoeventsda mesma configuração.
Eventos por entidade
Card (card)
card)Cards são oportunidades (vendas) ou tickets (suporte). O data é o objeto do card.
| Evento | Quando dispara |
|---|---|
CREATED | Card criado |
UPDATED | Dados do card alterados |
DELETED | Card excluído |
MOVED | Card movido de etapa do funil |
RESPONSIBLE_CHANGED | Responsável do card alterado |
MARKED_AS_WIN | Card marcado como ganho |
MARKED_AS_LOST | Card marcado como perdido |
MARKED_AS_OPEN | Card reaberto |
MARKED_AS_FREEZE | Card congelado |
MARKED_AS_SOLVE | Ticket marcado como resolvido |
MARKED_AS_UNSOLVE | Ticket marcado como não resolvido |
MARKED_AS_ARCHIVE | Ticket arquivado |
Legenda de status: 1 Aberto · 2 Ganho · 3 Perdido · 4 Congelado ·
5 Resolvido · 6 Não resolvido · 7 Arquivado · 8 Descartado.
Legenda de type: 1 Oportunidade · 2 Ticket.
{
"entity": "card",
"event": "CREATED",
"data": {
"id": 1024,
"title": "Proposta - Empresa ACME",
"status": 1,
"type": 1,
"funnelId": 5,
"funnelStepId": 12,
"uniqueValue": 1500.0,
"recurrentValue": 0,
"companyId": 88,
"contactId": 230,
"responsibleId": 7,
"ticketCategoryId": null,
"labels": [{ "id": 3, "name": "Quente", "color": "#FF0000" }],
"toCloseDate": "2026-07-10T00:00:00.000Z",
"freezeUntilDate": null,
"archivedUntilDate": null,
"observations": "Cliente pediu retorno na próxima semana",
"externalId": null,
"integrationId": null,
"customFields": [],
"createdById": 7,
"createdAt": "2026-06-21T13:40:00.000Z",
"updatedAt": "2026-06-21T13:40:00.000Z",
"deletedAt": null
}
}
Contact (contact)
contact)| Evento | Quando dispara |
|---|---|
CREATED | Contato criado |
UPDATED | Contato atualizado |
DELETED | Contato excluído |
Legenda de status: 1 Ativo · 0 Inativo.
{
"entity": "contact",
"event": "CREATED",
"data": {
"id": 230,
"name": "Maria Silva",
"role": "Gerente de Compras",
"cpf": "123.456.789-00",
"photoUrl": null,
"birthDate": null,
"companyId": 88,
"responsibleId": 7,
"status": 1,
"phones": [{ "id": 41, "number": "+5511999998888" }],
"emails": [{ "id": 33, "email": "[email protected]" }],
"labels": [{ "id": 3, "name": "Quente", "color": "#FF0000" }],
"cep": "01310-100",
"street": "Av. Paulista",
"addressNumber": "1000",
"neighborhood": "Bela Vista",
"city": "São Paulo",
"state": "SP",
"country": "Brasil",
"observation": null,
"externalId": null,
"integrationId": null,
"createdAt": "2026-06-21T13:40:00.000Z",
"updatedAt": "2026-06-21T13:40:00.000Z",
"deletedAt": null
}
}
Company (company)
company)| Evento | Quando dispara |
|---|---|
CREATED | Empresa criada |
UPDATED | Empresa atualizada |
DELETED | Empresa excluída |
{
"entity": "company",
"event": "CREATED",
"data": {
"id": 88,
"name": "ACME",
"corporateName": "ACME Comércio Ltda",
"cnpj": "12.345.678/0001-90",
"email": "[email protected]",
"phone": "+551133334444",
"cel": "+5511999990000",
"site": "https://acme.com",
"obs": null,
"responsibleId": 7,
"businessSegmentId": 2,
"labels": [],
"externalId": null,
"integrationId": null,
"createdAt": "2026-06-21T13:40:00.000Z",
"updatedAt": "2026-06-21T13:40:00.000Z",
"deletedAt": null
}
}
Funil e Etapas (funnels)
funnels)Eventos de funil e de etapa do funil chegam ambos com
entity: "funnels". Diferencie pelo valor deevent.
| Evento | Quando dispara | data |
|---|---|---|
CREATED | Funil criado | Funil |
UPDATED | Funil atualizado | Funil |
DELETED | Funil excluído | Funil |
STEP_CREATED | Etapa criada | Etapa |
STEP_UPDATED | Etapa atualizada | Etapa |
STEP_DELETED | Etapa excluída | Etapa |
STEPS_REORDERED | Etapas reordenadas | Array de etapas |
Legenda de type (funil): 1 Vendas · 2 Suporte.
Exemplo de funil (CREATED/UPDATED/DELETED):
{
"entity": "funnels",
"event": "CREATED",
"data": {
"id": 5,
"name": "Funil de Vendas",
"status": 1,
"type": 1,
"cardRequiresContact": false,
"visibilityType": 1,
"lostReasonRequired": false,
"winReasonRequired": false,
"unsolvedReasonRequired": false,
"resolvedReasonRequired": false,
"integrationId": null,
"createdAt": "2026-06-21T13:40:00.000Z",
"updatedAt": "2026-06-21T13:40:00.000Z",
"deletedAt": null
}
}
Exemplo de etapa (STEP_CREATED/STEP_UPDATED/STEP_DELETED):
{
"entity": "funnels",
"event": "STEP_CREATED",
"data": {
"id": 12,
"title": "Qualificação",
"description": null,
"stepNumber": 2,
"color": "#3366FF",
"funnelId": 5,
"createdAt": "2026-06-21T13:40:00.000Z",
"updatedAt": "2026-06-21T13:40:00.000Z",
"deletedAt": null
}
}
Exemplo de reordenação (STEPS_REORDERED) — data é um array:
{
"entity": "funnels",
"event": "STEPS_REORDERED",
"data": [
{ "id": 12, "title": "Qualificação", "stepNumber": 1, "funnelId": 5 },
{ "id": 13, "title": "Proposta", "stepNumber": 2, "funnelId": 5 }
]
}
Etiquetas (labels)
labels)| Evento | Quando dispara |
|---|---|
CREATED | Etiqueta criada |
UPDATED | Etiqueta atualizada |
DELETED | Etiqueta excluída |
{
"entity": "labels",
"event": "CREATED",
"data": {
"id": 3,
"name": "Quente",
"description": "Lead com alta intenção",
"color": "#FF0000",
"status": 1,
"integrationId": null,
"createdAt": "2026-06-21T13:40:00.000Z",
"updatedAt": "2026-06-21T13:40:00.000Z",
"deletedAt": null
}
}
Usuários (users)
users)| Evento | Quando dispara |
|---|---|
PASSWORD_CHANGED | Senha do usuário alterada |
Atenção: a senha nunca é enviada no payload.
{
"entity": "users",
"event": "PASSWORD_CHANGED",
"data": {
"id": 7,
"name": "João Vendedor",
"email": "[email protected]",
"status": 1,
"roleId": 2,
"customerAccountId": 1,
"externalId": null,
"integrationId": null,
"createdAt": "2026-01-10T10:00:00.000Z",
"updatedAt": "2026-06-21T13:40:00.000Z",
"deletedAt": null
}
}
Motivos de Finalização (termination_reasons)
termination_reasons)| Evento | Quando dispara |
|---|---|
CREATED | Motivo criado |
UPDATED | Motivo atualizado |
DELETED | Motivo excluído |
ATTACHED_FUNNELS | Funis vinculados ao motivo |
Legenda de type: 1 Ganho · 2 Perdido · 3 Descarte · 4 Resolvido · 5 Não resolvido.
{
"entity": "termination_reasons",
"event": "CREATED",
"data": {
"id": 15,
"name": "Preço alto",
"type": 2,
"status": 1,
"integrationId": null,
"createdAt": "2026-06-21T13:40:00.000Z",
"updatedAt": "2026-06-21T13:40:00.000Z",
"deletedAt": null
}
}
Submotivos de Finalização (termination_subreasons)
termination_subreasons)| Evento | Quando dispara |
|---|---|
CREATED | Submotivo criado |
UPDATED | Submotivo atualizado |
DELETED | Submotivo excluído |
ACTIVATED | Submotivo ativado |
DEACTIVATED | Submotivo desativado |
{
"entity": "termination_subreasons",
"event": "CREATED",
"data": {
"id": 42,
"name": "Concorrente mais barato",
"status": 1,
"createdAt": "2026-06-21T13:40:00.000Z",
"updatedAt": "2026-06-21T13:40:00.000Z",
"deletedAt": null
}
}
Equipes (teams)
teams)| Evento | Quando dispara |
|---|---|
CREATED | Equipe criada |
UPDATED | Equipe atualizada |
DELETED | Equipe excluída |
{
"entity": "teams",
"event": "CREATED",
"data": {
"id": 9,
"name": "Time Comercial SP",
"status": 1,
"externalId": null,
"createdAt": "2026-06-21T13:40:00.000Z",
"updatedAt": "2026-06-21T13:40:00.000Z",
"deletedAt": null
}
}
Tarefas (tasks)
tasks)| Evento | Quando dispara |
|---|---|
CREATED | Tarefa criada |
UPDATED | Tarefa atualizada |
DELETED | Tarefa excluída |
EXEC | Tarefa executada (chegou a hora agendada) |
Legenda de status: 1 Agendada · 2 Atrasada · 3 Concluída ·
4 Cancelada · 5 Falha · 6 Processando.
{
"entity": "tasks",
"event": "CREATED",
"data": {
"id": 510,
"title": "Ligar para o cliente",
"date": "2026-06-22T14:00:00.000Z",
"executedAt": null,
"typeId": 1,
"subType": 3,
"subTypeName": "Ligação",
"responsibleId": 7,
"contactId": 230,
"companyId": 88,
"cardId": 1024,
"status": 1,
"observation": "Confirmar interesse na proposta",
"createdAt": "2026-06-21T13:40:00.000Z",
"updatedAt": "2026-06-21T13:40:00.000Z",
"deletedAt": null
}
}
Anotações (notes)
notes)| Evento | Quando dispara |
|---|---|
CREATED | Anotação criada |
UPDATED | Anotação atualizada |
DELETED | Anotação excluída |
{
"entity": "notes",
"event": "CREATED",
"data": {
"id": 301,
"note": "Cliente prefere contato por WhatsApp.",
"contactId": 230,
"companyId": null,
"cardId": 1024,
"userId": 7,
"integrationId": null,
"createdAt": "2026-06-21T13:40:00.000Z",
"updatedAt": "2026-06-21T13:40:00.000Z",
"deletedAt": null
}
}
Categorias de Ticket (ticket_categories)
ticket_categories)| Evento | Quando dispara |
|---|---|
CREATED | Categoria criada |
UPDATED | Categoria atualizada |
DELETED | Categoria excluída |
{
"entity": "ticket_categories",
"event": "CREATED",
"data": {
"id": 4,
"name": "Suporte Técnico",
"description": "Chamados de problemas técnicos",
"status": 1,
"createdAt": "2026-06-21T13:40:00.000Z",
"updatedAt": "2026-06-21T13:40:00.000Z",
"deletedAt": null
}
}
Anexos (attachments)
attachments)| Evento | Quando dispara |
|---|---|
CREATED | Anexo enviado |
DELETED | Anexo excluído |
DOWNLOADED | Anexo baixado |
{
"entity": "attachments",
"event": "CREATED",
"data": {
"id": 720,
"fileName": "proposta-acme.pdf",
"mimeType": "application/pdf",
"url": "https://storage.triction.com/.../proposta-acme.pdf",
"size": 84213,
"contactId": 230,
"companyId": null,
"cardId": 1024,
"noteId": null,
"userId": 7,
"createdAt": "2026-06-21T13:40:00.000Z",
"updatedAt": "2026-06-21T13:40:00.000Z",
"deletedAt": null
}
}
Notificações (notifications)
notifications)| Evento | Quando dispara |
|---|---|
CREATED | Notificação criada |
UPDATED | Notificação atualizada |
MARKED_AS_READ | Notificação marcada como lida |
{
"entity": "notifications",
"event": "CREATED",
"data": {
"id": 980,
"title": "Tarefa próxima",
"description": "Você tem uma ligação agendada em 10 minutos.",
"date": "2026-06-22T13:50:00.000Z",
"key": "CREATED_BY_TASK",
"type": "TEN_MINUTES_BEFORE",
"entityId": "510",
"read": false,
"readDate": null,
"responsibleId": 7,
"createdAt": "2026-06-21T13:40:00.000Z",
"updatedAt": "2026-06-21T13:40:00.000Z",
"deletedAt": null
}
}
