Inicio/Trilha 3/Modulo 3.4
MODULO 3.4

💼 Integracao com CRMs

Salesforce, HubSpot, Pipedrive - conectando dados de vendas e clientes aos dashboards.

📚
6
Topicos
⏱️
75min
Duracao
📊
Avancado
Nivel
🎯
Vendas
Tipo
1

☁️ APIs de CRMs Modernos

Salesforce, HubSpot, Pipedrive

CRMs (Customer Relationship Management) sao sistemas que gerenciam relacionamento com clientes: leads, oportunidades, contatos, negocios. Para dashboards de vendas, sao fonte primaria de dados comerciais.

Diferente de ERPs, CRMs modernos tem APIs REST bem documentadas e faceis de integrar. Salesforce e HubSpot lideram o mercado global, Pipedrive e RD Station sao populares no Brasil.

📊 Comparacao de APIs de CRMs

CRMAPI StyleRate LimitsAuth
SalesforceREST + SOQL15k/diaOAuth 2.0
HubSpotREST100/10sAPI Key / OAuth
PipedriveREST80/2sAPI Token
RD StationREST120/minAPI Key

💻 Codigo: Conexao com HubSpot

import { Client } from '@hubspot/api-client';

const hubspotClient = new Client({ accessToken: process.env.HUBSPOT_TOKEN });

// Buscar deals (negocios)
async function getDeals(filters: { stage?: string }) {
  const response = await hubspotClient.crm.deals.searchApi.doSearch({
    filterGroups: filters.stage ? [{
      filters: [{ propertyName: 'dealstage', operator: 'EQ', value: filters.stage }]
    }] : [],
    properties: ['dealname', 'amount', 'dealstage', 'closedate', 'hs_lastmodifieddate'],
    limit: 100
  });

  return response.results.map(deal => ({
    id: deal.id,
    name: deal.properties.dealname,
    value: parseFloat(deal.properties.amount || '0'),
    stage: deal.properties.dealstage,
    closeDate: new Date(deal.properties.closedate)
  }));
}

// Metricas de pipeline
async function getPipelineMetrics() {
  const deals = await getDeals({});
  const byStage = groupBy(deals, 'stage');

  return Object.entries(byStage).map(([stage, stageDeals]) => ({
    stage,
    count: stageDeals.length,
    totalValue: sumBy(stageDeals, 'value'),
    avgValue: meanBy(stageDeals, 'value')
  }));
}
2

📈 Pipelines e Funis de Vendas

Visualizacao de etapas

Pipelines de vendas representam as etapas que um lead percorre ate virar cliente. Dashboards de vendas precisam visualizar volume, valor e conversao em cada etapa.

🎯 Exemplo Visual: Funil de Vendas

Leads1.247 | R$ 12.4M
Qualificados623 | R$ 8.7M
Proposta Enviada312 | R$ 5.2M
Negociacao156 | R$ 3.1M
Fechados78 | R$ 1.8M
Taxa de conversao geral: 6.3%

💻 Codigo: Calculo de Funil

// Calcular metricas de funil
function calculateFunnelMetrics(deals: Deal[], stages: string[]) {
  const stageOrder = stages.reduce((acc, stage, i) => ({ ...acc, [stage]: i }), {});

  const byStage = groupBy(deals, 'stage');

  return stages.map((stage, index) => {
    const stageDeals = byStage[stage] || [];
    const previousStage = stages[index - 1];
    const previousCount = byStage[previousStage]?.length || stageDeals.length;

    return {
      stage,
      count: stageDeals.length,
      value: sumBy(stageDeals, 'value'),
      conversionRate: index === 0 ? 100 : (stageDeals.length / previousCount * 100).toFixed(1),
      dropOff: index === 0 ? 0 : previousCount - stageDeals.length
    };
  });
}
3

🤖 Automacoes e Workflows

Integrando com automacoes do CRM

CRMs modernos tem workflows automatizados que disparam acoes baseadas em eventos. Dashboards podem se integrar a esses workflows para receber dados em tempo real ou disparar alertas.

🔄 Exemplos de Integracao com Workflows

Deal Fechado → Atualizar Dashboard

Webhook do CRM notifica dashboard quando deal e ganho. Dashboard atualiza metricas em real-time.

Meta Atingida → Notificacao

Dashboard detecta meta batida e dispara notificacao no Slack/Email via API do CRM.

Alerta de Churn → Task no CRM

Dashboard detecta risco de churn e cria task automatica para CS no CRM.

4

📊 Metricas de Vendas

KPIs essenciais de CRM

🎯 KPIs de Vendas do CRM

MRR (Monthly Recurring Revenue)

Receita mensal recorrente. Base para previsibilidade de receita.

CAC (Customer Acquisition Cost)

Custo para adquirir um cliente. Quanto menor, melhor a eficiencia.

LTV (Lifetime Value)

Valor total que cliente gera. LTV/CAC > 3 e saudavel.

Cycle Time

Tempo medio do lead ate fechamento. Identifica gargalos.

Win Rate

% de oportunidades ganhas. Mede qualidade do pipeline.

Pipeline Coverage

Valor pipeline / meta. 3x e o minimo recomendado.

5

🏆 Lead Scoring

Priorizacao de leads

Lead Scoring atribui pontos a leads baseado em caracteristicas e comportamentos. Dashboards podem exibir distribuicao de scores e taxa de conversao por faixa.

💻 Codigo: Exibindo Lead Scores

// Buscar leads com scores do HubSpot
async function getLeadsWithScores() {
  const contacts = await hubspotClient.crm.contacts.searchApi.doSearch({
    properties: ['firstname', 'lastname', 'email', 'hubspotscore', 'lifecyclestage'],
    limit: 100,
    sorts: [{ propertyName: 'hubspotscore', direction: 'DESCENDING' }]
  });

  return contacts.results.map(contact => ({
    id: contact.id,
    name: `${contact.properties.firstname} ${contact.properties.lastname}`,
    email: contact.properties.email,
    score: parseInt(contact.properties.hubspotscore || '0'),
    stage: contact.properties.lifecyclestage,
    priority: getScorePriority(parseInt(contact.properties.hubspotscore || '0'))
  }));
}

function getScorePriority(score: number): 'hot' | 'warm' | 'cold' {
  if (score >= 80) return 'hot';
  if (score >= 40) return 'warm';
  return 'cold';
}
6

🇧🇷 CRMs Brasileiros

RD Station, Ploomes, Moskit

O mercado brasileiro tem CRMs locais populares. RD Station domina marketing/vendas, Ploomes e forte em industrias, Moskit e acessivel para PMEs.

💻 Codigo: Integracao RD Station CRM

// API do RD Station CRM
class RDStationCRMClient {
  private baseUrl = 'https://crm.rdstation.com/api/v1';

  async getDeals(params: { dealStageId?: string }) {
    const url = new URL(`${this.baseUrl}/deals`);
    if (params.dealStageId) url.searchParams.set('deal_stage_id', params.dealStageId);

    const response = await fetch(url.toString(), {
      headers: { 'Authorization': `Bearer ${process.env.RD_CRM_TOKEN}` }
    });

    const data = await response.json();
    return data.deals.map(deal => ({
      id: deal.id,
      name: deal.name,
      value: deal.amount_montly || deal.amount_unique,
      stage: deal.deal_stage.name,
      owner: deal.user.name,
      createdAt: new Date(deal.created_at)
    }));
  }
}

💡 Dica Pratica

Para CRMs brasileiros: RD Station tem excelente documentacao e suporte. Ploomes e Moskit podem ter APIs mais limitadas - valide o que precisa antes de escolher. Considere usar Zapier/Make como middleware se integracao direta for complexa.

📝 Resumo do Modulo

APIs de CRM - Salesforce, HubSpot, Pipedrive com REST
Pipelines - Funis de vendas com conversao por etapa
Automacoes - Webhooks e workflows bidirecionais
Metricas - MRR, CAC, LTV, Win Rate, Cycle Time
Lead Scoring - Priorizacao e distribuicao de scores
CRMs BR - RD Station, Ploomes, Moskit