PIPEDRIVE_DEAL_GET - Buscar Deal no Pipedrive
O que é este Node?
O PIPEDRIVE_DEAL_GET é o node responsável por buscar informações detalhadas de um negócio específico no Pipedrive CRM usando o ID do deal.
Por que este Node existe?
Acessar dados atualizados de deals é essencial para tomar decisões e dar contexto ao cliente. O PIPEDRIVE_DEAL_GET existe para:
- Consulta de Status: Verificar estágio atual, valor e status do negócio
- Contexto em Conversas: Buscar detalhes do deal para personalizar atendimento
- Validação de Dados: Conferir se deal existe antes de atualizar
- Relatórios: Obter informações completas para análises e relatórios
Como funciona internamente?
Quando o PIPEDRIVE_DEAL_GET é executado, o sistema:
- Recebe o ID: Coleta o ID do deal a ser buscado
- Processa variáveis: Substitui
{{deal_id}}pelo valor real - Autentica no Pipedrive: Usa apiToken e companyDomain
- Faz requisição GET: Busca dados em
/api/v1/deals/{id} - Retorna dados completos: Pipedrive responde com todas as informações do deal
- Salva na variável: Armazena resposta na variável configurada
- Em caso de erro: Retorna erro se deal não existir ou token inválido
Código interno (pipedrive.executor.ts:29-32):
else if (operation === 'get') {
const dealId = this.replaceVariables(node.data.dealId, context.variables);
const response = await axios.get(`${endpoint}/${dealId}?${authParam}`, { headers });
result = response.data;
}
Quando você DEVE usar este Node?
Use PIPEDRIVE_DEAL_GET sempre que precisar de consultar dados atualizados de um deal:
Casos de uso
- Status do pedido: Cliente pergunta "Como está meu pedido?" e bot busca dados do deal
- Follow-up inteligente: Antes de atualizar deal, buscar estado atual para decisões
- Validação: Verificar se deal existe antes de executar operações
- Personalização: Buscar detalhes para personalizar mensagens (valor, estágio, vendedor)
- Relatório individual: Fornecer resumo completo do deal para o cliente
Quando NÃO usar PIPEDRIVE_DEAL_GET
- Listar vários deals: Use PIPEDRIVE_DEAL_LIST para buscar múltiplos deals
- Não sabe o ID: Use PIPEDRIVE_DEAL_LIST com filtros para encontrar
- Criar deal: Use PIPEDRIVE_DEAL_CREATE
Parâmetros Detalhados
dealId (string/number, obrigatório)
O que é: ID único do deal no Pipedrive que você deseja buscar.
Exemplo: 123, "456", "{{deal_id}}"
Flow completo para testar:
{
"name": "Teste Pipedrive - Buscar Deal",
"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": "ID do Deal",
"parameters": {
"message": "Digite o ID do deal:",
"variableName": "deal_id"
}
}
},
{
"id": "pipedrive_1",
"type": "pipedrive",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Buscar Deal",
"resource": "deals",
"operation": "get",
"config": {
"apiToken": "{{pipedrive_token}}",
"companyDomain": "sua-empresa"
},
"dealId": "{{deal_id}}",
"responseVariable": "deal_info"
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Mostrar Info",
"parameters": {
"message": "Deal: {{deal_info.data.title}}\nValor: {{deal_info.data.value}} {{deal_info.data.currency}}\nStatus: {{deal_info.data.status}}"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 900, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "input_1" },
{ "source": "input_1", "target": "pipedrive_1" },
{ "source": "pipedrive_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Teste: Digite um ID de deal válido. O sistema buscará e mostrará título, valor e status.
config.apiToken (string, obrigatório)
O que é: Token de API do Pipedrive.
Como obter: Settings → Personal preferences → API
config.companyDomain (string, obrigatório)
O que é: Subdomínio da empresa (ex: "minhaempresa" de minhaempresa.pipedrive.com)
responseVariable (string, opcional)
O que é: Nome da variável onde os dados do deal serão salvos.
Padrão: "pipedriveResult"
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| resource | string | Sim | Deve ser "deals" |
| operation | string | Sim | Deve ser "get" |
| config.apiToken | string | Sim | Token de API do Pipedrive |
| config.companyDomain | string | Sim | Subdomínio da empresa |
| dealId | string/number | Sim | ID do deal a buscar |
| responseVariable | string | Não | Nome da variável (padrão: pipedriveResult) |
Exemplo 1: Consulta de Status de Pedido
Objetivo: Cliente consulta status do seu pedido/negócio
JSON para Importar
{
"name": "Pipedrive - Consultar Status",
"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": "Saudação",
"parameters": {
"message": "Olá! Vou consultar o status do seu pedido."
}
}
},
{
"id": "input_1",
"type": "input",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Número Pedido",
"parameters": {
"message": "Digite o número do pedido:",
"variableName": "numero_pedido"
}
}
},
{
"id": "pipedrive_1",
"type": "pipedrive",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Buscar Deal",
"resource": "deals",
"operation": "get",
"config": {
"apiToken": "{{pipedrive_token}}",
"companyDomain": "sua-empresa"
},
"dealId": "{{numero_pedido}}",
"responseVariable": "pedido"
}
},
{
"id": "message_2",
"type": "message",
"position": { "x": 900, "y": 100 },
"data": {
"label": "Status",
"parameters": {
"message": "📦 Status do Pedido #{{numero_pedido}}\n\n✅ Pedido: {{pedido.data.title}}\n💰 Valor: R$ {{pedido.data.value}}\n📊 Estágio: {{pedido.data.stage_id}}\n👤 Responsável: {{pedido.data.owner_name}}"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1100, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "message_1" },
{ "source": "message_1", "target": "input_1" },
{ "source": "input_1", "target": "pipedrive_1" },
{ "source": "pipedrive_1", "target": "message_2" },
{ "source": "message_2", "target": "end_1" }
]
}
Saída esperada:
Sistema: Olá! Vou consultar o status do seu pedido.
Sistema: Digite o número do pedido:
Usuário: 789
Sistema: 📦 Status do Pedido #789
✅ Pedido: Sistema de Gestão - Empresa ABC
💰 Valor: R$ 15000
📊 Estágio: 3
👤 Responsável: João Vendedor
Exemplo 2: Validação Antes de Atualizar
Objetivo: Buscar deal para validar antes de atualizar informações
JSON para Importar
{
"name": "Pipedrive - Validar e Atualizar",
"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": "ID Deal",
"parameters": {
"message": "ID do deal:",
"variableName": "deal_id"
}
}
},
{
"id": "pipedrive_1",
"type": "pipedrive",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Buscar Deal",
"resource": "deals",
"operation": "get",
"config": {
"apiToken": "{{pipedrive_token}}",
"companyDomain": "sua-empresa"
},
"dealId": "{{deal_id}}",
"responseVariable": "deal_atual"
}
},
{
"id": "condition_1",
"type": "condition",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Deal Existe?",
"parameters": {
"variable": "deal_atual.success",
"operator": "equals",
"value": true
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 900, "y": 0 },
"data": {
"label": "Encontrado",
"parameters": {
"message": "Deal encontrado: {{deal_atual.data.title}}. Valor atual: R$ {{deal_atual.data.value}}"
}
}
},
{
"id": "number_1",
"type": "number",
"position": { "x": 1100, "y": 0 },
"data": {
"label": "Novo Valor",
"parameters": {
"message": "Digite o novo valor:",
"variableName": "novo_valor",
"decimals": 2
}
}
},
{
"id": "pipedrive_2",
"type": "pipedrive",
"position": { "x": 1300, "y": 0 },
"data": {
"label": "Atualizar Valor",
"resource": "deals",
"operation": "update",
"config": {
"apiToken": "{{pipedrive_token}}",
"companyDomain": "sua-empresa"
},
"dealId": "{{deal_id}}",
"deal": {
"value": "{{novo_valor}}"
}
}
},
{
"id": "message_2",
"type": "message",
"position": { "x": 1500, "y": 0 },
"data": {
"label": "Sucesso",
"parameters": {
"message": "✅ Deal atualizado! Novo valor: R$ {{novo_valor}}"
}
}
},
{
"id": "message_3",
"type": "message",
"position": { "x": 900, "y": 200 },
"data": {
"label": "Não Encontrado",
"parameters": {
"message": "❌ Deal #{{deal_id}} não encontrado. Verifique o ID e tente novamente."
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1700, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "input_1" },
{ "source": "input_1", "target": "pipedrive_1" },
{ "source": "pipedrive_1", "target": "condition_1" },
{ "source": "condition_1", "target": "message_1", "label": "true" },
{ "source": "condition_1", "target": "message_3", "label": "false" },
{ "source": "message_1", "target": "number_1" },
{ "source": "number_1", "target": "pipedrive_2" },
{ "source": "pipedrive_2", "target": "message_2" },
{ "source": "message_2", "target": "end_1" },
{ "source": "message_3", "target": "end_1" }
]
}
Saída esperada:
Sistema: ID do deal:
Usuário: 456
Sistema: Deal encontrado: Consultoria - Cliente XYZ. Valor atual: R$ 10000
Sistema: Digite o novo valor:
Usuário: 12500
Sistema: ✅ Deal atualizado! Novo valor: R$ 12500
Resposta do Node
{
"success": true,
"data": {
"id": 456,
"title": "Consultoria - Cliente XYZ",
"value": 10000,
"currency": "BRL",
"add_time": "2025-01-10 14:20:00",
"update_time": "2025-01-15 10:30:00",
"stage_id": 2,
"status": "open",
"person_id": 789,
"person_name": "João Silva",
"org_id": 123,
"org_name": "Empresa ABC LTDA",
"user_id": 5,
"owner_name": "Vendedor João",
"probability": 60,
"expected_close_date": "2025-02-01",
"won_time": null,
"lost_time": null,
"products_count": 2,
"notes_count": 5,
"activities_count": 3
}
}
Boas Práticas
✅ SIM:
- Sempre valide se
success: trueantes de acessar dados - Use CONDITION para tratar casos onde deal não existe
- Salve dados importantes em variáveis separadas para uso posterior
- Use responseVariable personalizado ao buscar múltiplos deals
- Busque deal antes de atualizar para validar existência
- Mostre informações relevantes ao usuário (título, valor, status)
❌ NÃO:
- Assumir que deal sempre existirá
- Ignorar erros de autenticação ou ID inválido
- Fazer múltiplas buscas do mesmo deal (armazene resultado)
- Buscar deal quando você só precisa do ID para criar/atualizar
Dicas
💡 Dica 1: Combine com CONDITION para verificar o estágio do deal e personalizar mensagem baseada no status atual.
💡 Dica 2: Use os dados retornados (person_name, org_name) para personalizar atendimento sem fazer queries adicionais.
💡 Dica 3: Verifique data.activities_count para saber se há tarefas pendentes e alertar vendedor.
💡 Dica 4: Use data.expected_close_date para criar lembretes automáticos de follow-up.
Próximos Nodes
→ PIPEDRIVE_DEAL_UPDATE - Atualizar deal existente → PIPEDRIVE_DEAL_LIST - Listar todos os deals → PIPEDRIVE_DEAL_CREATE - Criar novo deal