HomeTecnologia em FocoFaça você mesmoComo Criar um Webhook para Integração com o Pipedrive

Como Criar um Webhook para Integração com o Pipedrive

Você tem um site, um chatbot e utiliza o Pipedrive para gerenciar seus leads? Já imaginou como seria prático se os leads que interagem com seu site ou chatbot fossem automaticamente cadastrados no Pipedrive, economizando tempo e evitando erros manuais? Neste artigo, vamos te guiar em um passo a passo simples para criar um webhook que faz exatamente isso!

O Que é um Webhook?

Um webhook é uma maneira eficiente de enviar dados em tempo real de uma aplicação para outra. Quando um evento ocorre no seu site ou chatbot, o webhook envia automaticamente essas informações para o Pipedrive, onde os leads são registrados e prontos para serem acompanhados pelo seu time de vendas.

Passo a Passo para Criar um Webhook

1. Preparando o Ambiente

Antes de começar, você precisará de:

  • Conta no Pipedrive: Certifique-se de que você tem uma conta no Pipedrive e que possui uma chave de API (API Token).
  • Servidor Web com PHP: O exemplo a seguir usará PHP para processar o webhook.
  • Acesso ao Servidor: Certifique-se de que você tem acesso ao servidor onde o código do webhook será hospedado.

2. Configurando o Webhook

Vamos começar criando um arquivo PHP que irá receber os dados do seu site ou chatbot e enviá-los ao Pipedrive.

<?php

// Substitua pela sua API Key do Pipedrive
$apiToken = 'sua_chave_de_api_do_pipedrive';
$companyDomain = 'seu_dominio_pipedrive'; 

// Verifica se a requisição é do tipo POST
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Recebe os dados do webhook
    $webhookData = file_get_contents('php://input');
    $data = json_decode($webhookData, true);

    // Verifica se os dados necessários estão presentes
    if (isset($data['nome']) && isset($data['e-mail']) && isset($data['telefone']) && isset($data['necessidade'])) {
        // Extraia as informações do webhook
        $name = $data['nome'];
        $email = $data['e-mail'];
        $phone = $data['telefone'];
        $note = $data['necessidade'];

        // Configura os dados para enviar ao Pipedrive
        $pipedriveData = [
            'name' => $name,
            'email' => [['value' => $email, 'primary' => true]],
            'phone' => [['value' => $phone, 'primary' => true]],
            'visible_to' => 1 // Define a visibilidade do contato (1 = toda a empresa pode ver)
        ];

        // Configura o cURL para enviar os dados ao Pipedrive
        $url = "https://$companyDomain.pipedrive.com/v1/persons?api_token=$apiToken";
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($pipedriveData));

        // Executa a requisição e captura a resposta
        $response = curl_exec($ch);
        $result = json_decode($response, true);

        // Verifica se o contato foi criado com sucesso
        if ($result['success']) {
            $personId = $result['data']['id'];

            // Cria um negócio associado ao contato
            $dealData = [
                'title' => "Negócio de $name",
                'person_id' => $personId,
                'pipeline_id' => 1, // Substitua pelo ID do seu pipeline
                'stage_id' => 1,    // Substitua pelo ID do seu estágio
                'value' => 0, // Se houver um valor, substitua aqui
                'currency' => 'BRL', // Moeda
                'status' => 'open' // Status do negócio
            ];

            $dealUrl = "https://$companyDomain.pipedrive.com/v1/deals?api_token=$apiToken";
            $ch = curl_init($dealUrl);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($dealData));
            $dealResponse = curl_exec($ch);
            curl_close($ch);

            echo "Lead e negócio criados com sucesso!";
        } else {
            echo "Erro ao criar o contato no Pipedrive.";
        }
    } else {
        echo "Dados incompletos recebidos.";
    }
} else {
    echo "Método de requisição inválido.";
}

?>

3. Configurando a Segurança do Webhook

Para garantir que apenas requisições autorizadas possam acessar seu webhook, é importante implementar uma verificação de token de segurança. Veja como fazer isso:

// Defina o token de segurança
$securityToken = 'meu_token_seguro';

// Verifica o cabeçalho Authorization
$headers = getallheaders();
if (!isset($headers['Authorization']) || $headers['Authorization'] !== "Bearer $securityToken") {
    http_response_code(401); // Não autorizado
    echo "Token de autorização inválido.";
    exit;
}

Adicione este trecho ao seu código antes de processar os dados do webhook.

4. Testando o Webhook

Você pode testar o funcionamento do webhook usando cURL ou criando um script PHP que faça uma requisição POST para o webhook com dados de exemplo.

Exemplo de teste usando cURL:

curl -X POST https://seu-dominio.com/webhook.php \
-H "Authorization: Bearer meu_token_seguro" \
-H "Content-Type: application/json" \
-d '{
  "nome": "João Silva",
  "e-mail": "joao.silva@example.com",
  "telefone": "11987654321",
  "necessidade": "Preciso de um novo sistema de gestão."
}'

Conclusão

Integrar seu site ou chatbot ao Pipedrive com um webhook é uma maneira poderosa de automatizar o processo de captura de leads. Isso não só economiza tempo, mas também garante que todas as oportunidades sejam registradas e acompanhadas de maneira eficiente. Seguindo este passo a passo, você estará pronto para conectar seu sistema ao Pipedrive e melhorar ainda mais a gestão dos seus leads.

Gostou da Dica?

Se você tem interesse em mais artigos como este ou precisa de ajuda para implementar integrações como essa, entre em contato com a KSI Tecnologia. Estamos prontos para ajudar sua empresa a tirar o máximo proveito das ferramentas tecnológicas disponíveis no mercado!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *