TRELLO_MOVE_CARD - Mover Card Entre Listas
O que é este Node?
O TRELLO_MOVE_CARD é o node responsável por mover cards entre listas diferentes no Trello, permitindo automatizar o fluxo de trabalho conforme tarefas progridem em diferentes estágios.
Por que este Node existe?
Em metodologias ágeis (Kanban, Scrum), cards se movem entre estágios constantemente: Todo → Doing → Done. Fazer isso manualmente desperdiça tempo e pode gerar esquecimentos. O TRELLO_MOVE_CARD existe para:
- Automatizar Fluxo Kanban: Mover automaticamente de "Em Progresso" para "Concluído" quando tarefa finaliza
- Gestão de Status: Atualizar estágio baseado em ações do usuário (aprovação, rejeição, etc.)
- Pipeline de Vendas: Mover lead entre estágios do funil (qualificado → negociação → fechado)
- Suporte Multi-nível: Mover ticket entre níveis (N1 → N2 → N3) conforme complexidade
Como funciona internamente?
Quando o TRELLO_MOVE_CARD é executado, o sistema:
- Valida Credenciais: Verifica API Key e Token do Trello
- Valida Card e Lista: Confirma que card existe e lista de destino é válida
- Prepara Movimentação: Organiza dados para mudança de lista
- Faz Requisição: PUT para
https://api.trello.com/1/cards/{cardId}alterandoidList - Se erro: Retorna mensagem (card não existe, lista inválida, sem permissão)
- Se sucesso: Retorna confirmação da movimentação
Código interno (productivity-executors.service.ts:573-584):
case 'moveCard':
const moveCardResponse = await firstValueFrom(
this.httpService.put(`${trelloApiUrl}/cards/${data.cardId}${auth}`,
{
idList: data.newListId,
}
)
);
return {
success: true,
cardId: moveCardResponse.data.id,
};
Quando você DEVE usar este Node?
Use TRELLO_MOVE_CARD sempre que precisar de progressão automática de tarefas:
Casos de uso
- Kanban Automatizado: Tarefa concluída → Move de "Doing" para "Done"
- Aprovação de Processos: Cliente aprova orçamento → Move de "Aguardando Aprovação" para "Aprovado"
- Triagem de Suporte: Problema identificado → Move de "Novo" para "Em Análise" ou "Resolvido"
- Pipeline de Vendas: Lead qualificado → Move de "Prospecção" para "Negociação"
Quando NÃO usar TRELLO_MOVE_CARD
- Atualizar Informações: Use TRELLO_UPDATE_CARD ao invés
- Adicionar Comentário: Use TRELLO_ADD_COMMENT ao invés
- Criar Novo Card: Use TRELLO_CREATE_CARD ao invés
Parâmetros Detalhados
apiKey (string, obrigatório)
O que é: Chave de API do Trello para autenticação.
Como obter: Acesse https://trello.com/app-key
Flow completo para testar:
{
"name": "Teste Trello Move - API Key",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "input_1",
"type": "input",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Coletar API Key",
"parameters": {
"message": "Digite sua API Key do Trello:",
"variableName": "trello_api_key"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "API Key configurada!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 700, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "input_1" },
{ "source": "input_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Teste: Digite sua API Key. O sistema confirmará.
apiToken (string, obrigatório)
O que é: Token de autenticação do Trello.
Como obter: Gere em https://trello.com/app-key (seção Token)
cardId (string, obrigatório)
O que é: ID do card que será movido.
Como obter:
1. Abra o card no Trello
2. URL: https://trello.com/c/CARD_ID/nome
3. Ou pegue do retorno do TRELLO_CREATE_CARD
4. Ou use API: GET https://api.trello.com/1/lists/LIST_ID/cards
Flow completo para testar:
{
"name": "Teste Trello Move - Card ID",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "input_1",
"type": "input",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Coletar Card ID",
"parameters": {
"message": "Digite o ID do card a mover:",
"variableName": "card_id"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "Card {{card_id}} será movido"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 700, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "input_1" },
{ "source": "input_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Teste: Digite um Card ID válido. O sistema confirmará.
newListId (string, obrigatório)
O que é: ID da lista de destino para onde o card será movido.
Como obter:
1. Abra o board no Trello
2. Use a API: GET https://api.trello.com/1/boards/BOARD_ID/lists?key=KEY&token=TOKEN
3. Encontre o ID da lista desejada
Padrão: Nenhum (obrigatório fornecer)
Flow completo para testar:
{
"name": "Teste Trello Move - List ID",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "input_1",
"type": "input",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Coletar List ID",
"parameters": {
"message": "Digite o ID da lista de destino:",
"variableName": "new_list_id"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "Card será movido para lista: {{new_list_id}}"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 700, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "input_1" },
{ "source": "input_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Teste: Digite um List ID válido. O sistema confirmará o destino.
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| operation | string | Sim | Sempre "moveCard" |
| apiKey | string | Sim | API Key do Trello |
| apiToken | string | Sim | Token de autenticação |
| cardId | string | Sim | ID do card a mover |
| newListId | string | Sim | ID da lista de destino |
Exemplo 1: Fluxo Kanban Automatizado
Objetivo: Mover card automaticamente entre estágios do Kanban conforme progresso
JSON para Importar
{
"name": "Kanban Automatizado - Trello",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "message_1",
"type": "message",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Status",
"parameters": {
"message": "Atualizar status da tarefa:\n\n1 - Iniciar trabalho\n2 - Marcar em revisão\n3 - Concluir tarefa"
}
}
},
{
"id": "number_1",
"type": "number",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Ação",
"parameters": {
"message": "Digite a opção:",
"variableName": "acao",
"min": 1,
"max": 3
}
}
},
{
"id": "switch_1",
"type": "switch",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Decidir Movimento",
"parameters": {
"variable": "{{acao}}",
"cases": [
{ "value": "1", "output": "doing" },
{ "value": "2", "output": "review" },
{ "value": "3", "output": "done" }
]
}
}
},
{
"id": "trello_doing",
"type": "trello_move_card",
"position": { "x": 900, "y": 50 },
"data": {
"label": "Mover para Doing",
"parameters": {
"operation": "moveCard",
"apiKey": "sua_api_key",
"apiToken": "seu_token",
"cardId": "{{task_card_id}}",
"newListId": "id_lista_doing"
}
}
},
{
"id": "trello_review",
"type": "trello_move_card",
"position": { "x": 900, "y": 150 },
"data": {
"label": "Mover para Review",
"parameters": {
"operation": "moveCard",
"apiKey": "sua_api_key",
"apiToken": "seu_token",
"cardId": "{{task_card_id}}",
"newListId": "id_lista_review"
}
}
},
{
"id": "trello_done",
"type": "trello_move_card",
"position": { "x": 900, "y": 250 },
"data": {
"label": "Mover para Done",
"parameters": {
"operation": "moveCard",
"apiKey": "sua_api_key",
"apiToken": "seu_token",
"cardId": "{{task_card_id}}",
"newListId": "id_lista_done"
}
}
},
{
"id": "message_2",
"type": "message",
"position": { "x": 1100, "y": 150 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "✅ Card movido com sucesso!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1300, "y": 150 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "message_1" },
{ "source": "message_1", "target": "number_1" },
{ "source": "number_1", "target": "switch_1" },
{ "source": "switch_1", "target": "trello_doing", "label": "doing" },
{ "source": "switch_1", "target": "trello_review", "label": "review" },
{ "source": "switch_1", "target": "trello_done", "label": "done" },
{ "source": "trello_doing", "target": "message_2" },
{ "source": "trello_review", "target": "message_2" },
{ "source": "trello_done", "target": "message_2" },
{ "source": "message_2", "target": "end_1" }
]
}
Saída esperada:
Sistema: Atualizar status da tarefa:
1 - Iniciar trabalho
2 - Marcar em revisão
3 - Concluir tarefa
Sistema: Digite a opção:
Usuário: 3
Sistema: ✅ Card movido com sucesso!
Exemplo 2: Pipeline de Vendas
Objetivo: Mover lead automaticamente entre estágios do funil de vendas
JSON para Importar
{
"name": "Pipeline Vendas - Trello",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "message_1",
"type": "message",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Qualificar",
"parameters": {
"message": "Vamos qualificar este lead.\n\nTem interesse real no produto?"
}
}
},
{
"id": "input_1",
"type": "input",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Interesse",
"parameters": {
"message": "Digite SIM ou NÃO:",
"variableName": "interesse"
}
}
},
{
"id": "condition_1",
"type": "condition",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Tem Interesse?",
"parameters": {
"condition": "{{interesse}}.toUpperCase() === 'SIM'"
}
}
},
{
"id": "number_1",
"type": "number",
"position": { "x": 900, "y": 50 },
"data": {
"label": "Orçamento",
"parameters": {
"message": "Qual o orçamento disponível? (R$)",
"variableName": "orcamento",
"min": 0
}
}
},
{
"id": "condition_2",
"type": "condition",
"position": { "x": 1100, "y": 50 },
"data": {
"label": "Orçamento OK?",
"parameters": {
"condition": "{{orcamento}} >= 5000"
}
}
},
{
"id": "trello_qualificado",
"type": "trello_move_card",
"position": { "x": 1300, "y": 30 },
"data": {
"label": "Lead Qualificado",
"parameters": {
"operation": "moveCard",
"apiKey": "sua_api_key",
"apiToken": "seu_token",
"cardId": "{{lead_card_id}}",
"newListId": "id_lista_qualificados"
}
}
},
{
"id": "trello_nutrir",
"type": "trello_move_card",
"position": { "x": 1300, "y": 100 },
"data": {
"label": "Nutrir Lead",
"parameters": {
"operation": "moveCard",
"apiKey": "sua_api_key",
"apiToken": "seu_token",
"cardId": "{{lead_card_id}}",
"newListId": "id_lista_nutrir"
}
}
},
{
"id": "trello_descartado",
"type": "trello_move_card",
"position": { "x": 900, "y": 180 },
"data": {
"label": "Lead Descartado",
"parameters": {
"operation": "moveCard",
"apiKey": "sua_api_key",
"apiToken": "seu_token",
"cardId": "{{lead_card_id}}",
"newListId": "id_lista_descartados"
}
}
},
{
"id": "message_2",
"type": "message",
"position": { "x": 1500, "y": 100 },
"data": {
"label": "Resultado",
"parameters": {
"message": "✅ Lead categorizado e movido!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1700, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "message_1" },
{ "source": "message_1", "target": "input_1" },
{ "source": "input_1", "target": "condition_1" },
{ "source": "condition_1", "target": "number_1", "label": "true" },
{ "source": "condition_1", "target": "trello_descartado", "label": "false" },
{ "source": "number_1", "target": "condition_2" },
{ "source": "condition_2", "target": "trello_qualificado", "label": "true" },
{ "source": "condition_2", "target": "trello_nutrir", "label": "false" },
{ "source": "trello_qualificado", "target": "message_2" },
{ "source": "trello_nutrir", "target": "message_2" },
{ "source": "trello_descartado", "target": "message_2" },
{ "source": "message_2", "target": "end_1" }
]
}
Saída esperada:
Sistema: Vamos qualificar este lead. Tem interesse real no produto?
Sistema: Digite SIM ou NÃO:
Usuário: SIM
Sistema: Qual o orçamento disponível? (R$)
Usuário: 10000
Sistema: ✅ Lead categorizado e movido!
Resposta do Node
{
"success": true,
"cardId": "507f1f77bcf86cd799439011"
}
Boas Práticas
✅ SIM:
- Use movimentação para refletir mudanças reais de status
- Combine com TRELLO_ADD_COMMENT para registrar motivo da movimentação
- Valide se card está na lista correta antes de mover
- Notifique stakeholders sobre mudanças importantes de estágio
- Use labels para indicar sub-status dentro da lista
❌ NÃO:
- Não mova cards aleatoriamente sem critério
- Não esqueça de atualizar informações ao mover (use UPDATE_CARD junto)
- Não mova para lista errada (valide newListId)
- Não mova sem registrar motivo (adicione comentário)
Dicas
💡 Fluxo Bidirecional: Permita mover cards para frente E para trás (ex: Done → Review se encontrar problemas)
💡 Automação por Tempo: Use SCHEDULE para mover cards automaticamente após X dias sem atividade (ex: "Em Análise" → "Stalled")
💡 Notificações: Envie mensagem WhatsApp para responsável quando card é movido para sua lista
💡 Webhooks: Configure webhooks Trello para acionar flows quando cards são movidos manualmente no board
💡 Logs de Auditoria: Registre todas as movimentações com timestamp, autor e motivo na descrição do card
Próximo Node
→ TRELLO_CREATE_CARD - Criar novos cards → TRELLO_UPDATE_CARD - Atualizar cards → TRELLO_ADD_COMMENT - Adicionar comentários