Obter, criar, atualizar ou mover cards kanban do CRM por telefone ou coluna.
Nó CRM
O nó CRM (crm_cards) lê ou grava cards nos boards CRM WhatsWave: busca por telefone do contato ou coluna, upsert (criar/atualizar/mover) ou adiciona comentários com anexos opcionais.
Encontre-o na paleta WhatsWave em Automações.
Figura 1: Nó CRM — operação upsert com board, coluna e telefone
O que faz
| Aspecto | Comportamento |
|---|---|
| Node type | crm_cards |
| Executor | http_request |
| Operations | Get cards, Get column cards, Upsert, Comment |
| Outputs | data, card |
Cards vinculam contatos (por telefone) a colunas em um board. Upsert cria card novo ou atualiza/move existente para o mesmo telefone naquele board.
Operação: Get cards (crm_op_fetch)
Endpoint: GET /crm/cards/fetch
| Campo | Key | Obrigatório | Descrição |
|---|---|---|---|
| CRM (board) | board_id | Sim | Board picker |
| Contact phone | contact_phone_number | Sim | ex.: {{trigger.body.from}} |
Retorna cards daquele contato no board selecionado.
Operação: Get column cards (crm_op_fetch_column)
Endpoint: GET /crm/cards/fetch?scope=column
| Campo | Key | Obrigatório | Descrição |
|---|---|---|---|
| CRM (board) | board_id | Sim | Board picker |
| Column | column_id | Sim | Column picker (filtrado por board) |
Lista todos os cards de uma coluna — útil para processamento em lote ou relatórios.
Operação: Upsert card (crm_op_upsert)
Endpoint: POST /crm/cards/upsert
| Campo | Key | Obrigatório | Descrição |
|---|---|---|---|
| CRM (board) | board_id | Sim | Board alvo |
| Column (ID) | column_id | Não | UUID da coluna — no create, vazio = primeira coluna; em card existente, move para a coluna |
| Column name | column_name | Não | Alternativa ao ID — correspondência case-insensitive, ex.: Novo lead |
| Contact phone | contact_phone_number | Sim | Chave do contato do card |
| Title | title | Sim | Título do card |
| Description | description | Não | Texto do corpo ou {{variables.field}} |
| Position | position | Não | Ordem de classificação na coluna |
| Metadata | metadata | Não | JSON — dados estruturados extras |
Resolução de coluna: use column_id ou column_name. Para cards novos sem coluna, usa-se a primeira coluna.
Operação: Comment on card (crm_op_comment)
Endpoint: POST /crm/cards/comment
| Campo | Key | Obrigatório | Descrição |
|---|---|---|---|
| Card ID | card_id | Sim | ex.: {{crm_1.card.id}} |
| Comment text | comment_text | Sim | Corpo do comentário |
| Author | author_type | Não | user (padrão) ou ai |
| Attachments | attachments | Não | Array JSON: [{"url":"https://…","type":"document","filename":"proposta.pdf"}] |
Dicas e boas práticas
- Upsert é idempotente por telefone + board — seguro chamar em todo webhook; atualiza title/description e move coluna quando especificado.
- Use
column_namepara workflows portáveis entre ambientes onde UUIDs de coluna diferem. - Comente com
author_type: aiao registrar decisões do AI Agent na timeline do card. - Fetch antes de upsert quando precisar preservar campos não incluídos no payload de upsert.
- Combine com Send — mover para coluna "Won" → enviar template de agradecimento.
Exemplos de uso
Exemplo 1 — Lead de webhook para pipeline
Trigger: Webhook — formulário de landing page.
Fluxo:
- Contact — Create
- CRM — Upsert
column_name:Novo leadtitle:{{trigger.body.name}}contact_phone_number:{{trigger.body.phone}}
- Send — mensagem de boas-vindas
Exemplo 2 — Pagamento move card + comentário
Trigger: Webhook — pagamento confirmado.
Fluxo:
- CRM — Upsert
column_name:Pagotitle:Order {{trigger.body.order_id}}
- CRM — Comment
card_id:{{crm_1.card.id}}comment_text:Paid R$ {{trigger.body.amount}}
Exemplo 3 — Processar backlog de coluna
Trigger: Schedule — a cada hora.
Fluxo:
- CRM — Get column cards, coluna "Follow-up due"
- Loop — por card → Message queue lembrete usando
contact_phone_numberdos dados do card
FAQ
IDs legados crm_card_get, crm_card_upsert, etc.?
Todos mapeiam para crm_cards com operation templates.
Upsert vs create/update separados?
Upsert único trata ambos — chaveado por board + telefone.
Posso excluir cards?
Não via este nó — use UI do CRM ou API fora da paleta.
Por que a movimentação falhou?
column_id inválido para o board ou typo em column_name — verifique se board/column pickers correspondem.
Artigos relacionados
Este artigo foi útil?
Precisa de mais ajuda? Falar com suporte