Integração de Leads e Oportunidades do Exact Spotter para TOTVS CRM em unidades TOTVS Corp
Contexto
A integração entre o Exact Spotter e o TOTVS CRM por meio do TOTVS IPAAS foi desenvolvida para otimizar o fluxo de informações entre essas duas plataformas. Com a integração entre as ferramentas você pode automatizar o processo de envio de lead/oportunidades geradas no Exact Spotter para o TOTVS CRM. Isso significa que os dados dos potenciais clientes são enviados automaticamente, sem a necessidade de intervenção manual, o que reduz significativamente o tempo gasto nessa tarefa e elimina erros que poderiam ocorrer durante o processo.
Sistemas Envolvidos
- Exact Spotter
- TOTVS IPAAS
- TOTVS CRM
Unidades que usam este modelo de integração
- TOTVS Ibirapuera
O que esta integração faz?
O fluxo de integração tem por objetivo principal integrar leads/clientes, contatos, oportunidades e atividades do Exact Spotter com o TOTVS CRM, mediante pré requisitos e regras estabelecidas.
Diagrama da integração de Leads/Oportunidades com origem no Exact Spotter para o TOTVS CRM
Diagrama da integração TOTVS CRM → Exact Spotter
Quando um lead/oportunidade é enviado ao TOTVS CRM?
Quando o lead/oportunidade entra na etapa "Lead Qualificado" do funil, é acionado um gatilho para que o registro seja enviado ao IPAAS para realizar a integração com o TOTVS CRM:
Quais campos podem ser integrados entre Exact Spotter e o TOTVS CRM?
Abaixo estão as entidades que vem do Exact Spotter e são integradas ao TOTVS CRM.
Em cada uma delas, temos também o JSON de exemplo para aprimorar o entendimento do leitor.
Sempre que um lead é qualificado no Exact Spotter um evento é disparado para o IPAAS que integra as informações de Lead/Cliente, Contato, Oportunidade, Equipe da oportunidade e Atividade com o TOTVS CRM.
JSON de exemplo: json_lead_e_afins.txt
Lead/Cliente (Lead/Customer):
Inserção do lead/cliente no TOTVS CRM.
Exact Spotter | Formato | TOTVS CRM |
valor padrão true | boolean | active |
Lead.Address.Address_Maps Se nulo Então Endereço Padrão | string | addresses.address |
variável totvs_crm_addresstypeid | uuid | addresses.addressType.id |
Lead.Address.AddAddressInformation | string | addresses.complement |
Lead.Address.City | string | addresses.cityName |
Lead.Address.Country | string | addresses.countryName |
Lead.Address.State | string | addresses.stateName |
Lead.Address.Address_Maps Se nulo Então Endereço Padrão | string | addresses.description |
SPOTTER #' Lead.SsnEin | string | addresses.externalId |
Lead.Address.ZipCode | string | addresses.postalCode |
Lead.Id | string | code |
valor padrão false | boolean | converted |
Se mandou um CNPJ Então variável totvs_crm_customerpersontype_pj Se mandou um CPF Então variável totvs_crm_customerpersontype | uuid | customerPersonType.id |
SPOTTER # Lead.SsnEin | string | externalId |
Lead.SsnEin | string | leadIdentificationDocuments.documentNumber |
SPOTTER # Lead.SsnEin | string | leadIdentificationDocuments.externalId |
Se mandou um CNPJ Então CNPJ Se mandou um CPF Então CPF | string | leadIdentificationDocuments.identificationDocumentAcronym |
Se mandou um CNPJ Então CNPJ Se mandou um CPF Então CPF | uuid | leadIdentificationDocuments.identificationDocumentId |
valor padrão true | boolean | leadOrigin.defaultValue |
variável totvs_crm_leadoriginid | uuid | leadOrigin.id |
variável totvs_crm_lead_stage | uuid | leadStage.id |
Lead.Industry.id | uuid | locationBusinessLine.id |
Lead.Company | string | name |
SPOTTER # Lead.SsnEin | string | phones.externalId |
Lead.Phone | string | phones.number |
variável totvs_crm_phonetypeid_main | uuid | phones.phoneTypeId |
valor padrão true | boolean | phones.standard |
Lead.SalesRep.Email (busca por username no TOTVS CRM) Se nulo Então variável totvs_crm_default_user | uuid | professionalId |
Lead.SalesRep.Email (busca por username no TOTVS CRM) Se nulo/não encontrado Então variável totvs_crm_default_user | string | professionalName |
Lead.Company | string | tradingName |
Lead.Site | string | website |
Contato (Contact):
Inserção do contato do lead/cliente no TOTVS CRM.
Exact Spotter | Formato | TOTVS CRM |
valor padrão true | boolean | active |
Lead.Contact.Email | string | emails.email |
variável totvs_crm_emailtypeid | uuid | emails.emailTypeId |
SPOTTER # Lead.Contact.Id | string | emails.externalId |
valor padrão true | boolean | emails.standard |
SPOTTER # Lead.Contact.Id | string | externalId |
Se Lead.Contact.TypeMessenger = Facebook Então facebook Se Lead.Contact.TypeMessenger = Instagram Então instagram Se Lead.Contact.TypeMessenger = LinkedIn Então linkedin Se Lead.Contact.TypeMessenger = Twitter Então twitter | string | facebook | instagram | linkedin | twitter |
SPOTTER # Lead.SsnEin | uuid | leadId |
Lead.Contact.Name | string | name |
SPOTTER # Lead.Contact.Id | string | phones.externalId |
Lead.Contact.Phone | string | phones.number |
variável totvs_crm_phonetypeid_main | uuid | phones.phoneTypeId |
valor padrão true | boolean | phones.standard |
Lead.Contact.Position | string | role |
Oportunidade (Opportunity):
Inserção da oportunidade para o lead/cliente no TOTVS CRM.
Exact Spotter | Formato | TOTVS CRM |
Se for um Lead Então valor padrão LEAD Se for um Lead Então valor padrão CUSTOMER | string | accountType |
SPOTTER #' Lead.SsnEin | uuid | address.id |
SPOTTER # Lead.Contact.Id | uuid | contacts.id |
valor padrão Oportunidade criada para o Lead + Lead.Company | string | description |
data corrente + variável totvs_crm_expecteddays | string(uuuu-MM-dd'T'HH:mm:ss.SSS'Z') | expectedAt |
SPOTTER # Lead.SsnEin # Lead.Id | string | externalId |
SPOTTER # Lead.SsnEin | uuid | leadId | customerId |
valor padrão Lead no Spotter: + Lead.PublicLink | string | note |
variável totvs_crm_oportunity_type | uuid | opportunityTypeId |
variável totvs_crm_pipeline | uuid | pipelineId |
variável totvs_crm_oportunity_stage | uuid | stageId |
data corrente | string(uuuu-MM-dd'T'HH:mm:ss.SSS'Z') | startedAt |
valor padrão PROGRESS | string | status |
valor padrão 0 | number | totalRecurrentValue |
valor padrão 0 | number | totalSingleValue |
valor padrão 0 | number | totalValue |
Lead.SalesRep.Email (busca por username no TOTVS CRM) Se nulo/não encontrado Então variável totvs_crm_default_user | uuid | userId |
Equipe da oportunidade (Team Members):
Inserção do pré vendedor na oportunidade no TOTVS CRM.
Exact Spotter | Formato | TOTVS CRM |
valor padrão true | boolean | active |
valor padrão READ, UPDATE, TRANSFER e SHARE | string | allowedActions |
SPOTTER # Lead.SsnEin # Lead.Id | string | externalId |
valor padrão 1 | number | percentageOfParticipation |
valor padrão true | boolean | responsible |
variável totvs_crm_role_preseller | uuid | roleId |
Lead.SDR.Email Se nulo/não encontrado Então variável totvs_crm_preseller_default | uuid | userId |
Atividade (Activity):
Esta atividade é criada/atualizada assim que o lead/cliente é agendado/reagendado no Exact Spotter, a mesma está vinculada com a oportunidade do funil.
Exact Spotter | Formato | TOTVS CRM |
variável totvs_crm_activity_type | uuid | activityTypeId |
valor padrão false | boolean | allDay |
Appointment.Reference + Appointment.MeetingType | string | description |
Appointment.DateTimeEndDate | string(uuuu-MM-dd'T'HH:mm:ss.SSS'Z') | endDate |
SPOTTER # Lead.SsnEin # Lead.Id | string | externalId |
SPOTTER # Lead.SsnEin | uuid | leadId | customerId |
valor padrão Link Feedback: + Appointment.LinkFeedback | string | note |
Appointment.Reference | string | origin.description |
SPOTTER # Lead.SsnEin # Lead.Id | uuid | origin.id |
valor padrão OPPORTUNITY | string | origin.type |
valor padrão MEDIUM | string | priority |
Appointment.DateTimeStartDate | string(uuuu-MM-dd'T'HH:mm:ss.SSS'Z') | startDate |
valor padrão OPEN | string | status |
Lead.SalesRep.Email (busca por username no TOTVS CRM) Se nulo/não encontrado Então variável totvs_crm_default_user | uuid | userId |
Pré-requisitos Cliente
É necessário contratar o pacote Essential ou superior do Exact Spotter.
Pré-requisitos Exact Spotter
Para que os leads, contatos, oportunidades e atividades sejam integrados corretamente, é necessário cadastrar alguns eventos no Exact Spotter que chamarão os Webhooks, enviado a informação da forma correta ao IPAAS e posteriormente para o TOTVS CRM.
Utilize a seguinte documentação para inserir os eventos: https://exactspotter.docs.apiary.io/#/reference/0/webhooks-insercao
Dica: você pode utilizar o programa Postman para inserir os eventos.
Os eventos padrão e os corpos da requisições são:
OBSERVAÇÃO: caso o cliente queira que o lead/cliente seja disparado para o TOTVS CRM em outra etapa diferente de Agendados e Reagendados, basta alterar/remover os dois eventos abaixo com a sua respectiva etapa.
Segue documentação dos eventos possíveis: https://exactspotter.docs.apiary.io/#/reference/0/webhooks-insercao
- event.leadqualified
{
"event": "event.leadqualified",
"url": "URL do Webhook do serviço Lead Exact Spotter to TOTVS CRM"
}
Pré-requisitos IPAAS:
Adicione uma conta no aplicativo TOTVS CRM:
- Acesse o aplicativo TOTVS CRM
- Vá na aba Contas e clique em "Cadastrar Conta"
- Você pode configurar de duas formas, via body ou via bearer token, conforme as imagens abaixo:
Adicione uma conta no aplicativo Exact Sales:
- Acesse o aplicativo Exact Sales
- Vá na aba Contas e clique em "Cadastrar Conta" e configure conforme a imagem abaixo:
O próximo passo é clonar do projeto padrão para a sua respectiva empresa no IPAAS.
Para isso, realize os seguintes procedimentos:
- Abra o seu navegador e acesse o site https://IPAAS.totvs.app/
- No menu do site, procure pela opção "Integrações" e clique nela
- Em seguida, procure pelo submenu "Variáveis" e selecione essa opção
- Procure o projeto clonado Standard - TOTVS CRM-SPOTTER
- Agora, você deve preencher os campos "Chave" e "Valor" para cada variável
Segue os valores a serem preenchidos:
Tipo de variável | Projeto | Chave | Valor exemplo * | Descrição |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_exact_lead_sending_stage_trigger | Lead Qualificado * | Etapa delimitadora do Exact Spotter que envia os dados para o TOTVS CRM. Exemplo: Entrada, Agendados, Qualificados, Vendidos e etc. OBS: a variável é case sensitive |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_role_preseller | ID do papel equivalente a Pré Vendedor no TOTVS CRM OBS: cada unidade da TOTVS Corp possui seu papel de pré vendedor ou APN | |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_default_user | Informar um e-mail existente no CRM para caso não seja encontrado o usuário responsável. OBS: este usuário deverá possuir um papel cadastrado, do contrário não será possível inserir o Lead/Cliente | |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_preseller_default | Adicionar um e-mail padrão de um pré vendedor do Exact Spotter, para caso a integração não encontre o vendedor no TOTVS CRM. OBS: este pré vendedor deve ser cadastrado no TOTVS CRM e ter o mesmo papel da variável totvs_crm_role_preseller | |
Projeto | Standard - TOTVS CRM-SPOTTER | raizoportunidade | Link padrão de oportunidades do TOTVS CRM | |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_leadsituationid | 1aa8633e-5ff3-4bc4-a7d5-1b63a879c4f2 * | ID situação LEAD equivalente a ATIVO |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_phonetypeid_mobile | 67cd545a-cf05-441e-a0ec-635c44e60d41 * | ID tipo de telefone equivalente a MÓVEL |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_phonetypeid_main | d870427c-bbad-4eb8-9af5-5183b47f648f * | ID tipo de telefone equivalente a PRINCIPAL |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_addresstypeid | b604f287-36bf-4e6d-ae83-c75c46a2fbeb * | ID Tipo de endereço equivalente a PRINCIPAL |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_pipeline | SQL Macro | Vendas Novas, UP & Cross ESN * | Descrição da pipeline |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_oportunity_type | Software * | Descrição do tipo de oportunidade |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_oportunity_stage | 1. Passagem de Bastão (MQL > SQL) * | Descrição da etapa (stage) |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_customerpersontype_pj | 40694c1a-44f9-4c3b-a5a8-aa63e0742c75 * | ID tipo de pessoa equivalente a Jurídica |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_activity_type | e225924b-4895-4793-8d89-998b5fc735fb | ID tipo de atividade Formulário de investigação |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_token_exact | Leia a descrição | Token do Exact Spotter, localizado em: spotter/configuracoes/integracoes |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_leadoriginid | 81aed0c3-9fb9-4e4b-8a54-7c21c637c072 * | ID origem equivalente a Spotter |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_expecteddays | 90 * | Prazo de conclusão da oportunidade, considere data atual + totvs_crm_expecteddays |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_identification_document_cnpj | 651b2c32-aeca-4373-9cb9-96b132ba5020 * | ID do documento equivalente a CNPJ |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_identification_document_cpf | 95839570-6791-49f4-88fe-68efd115213d * | ID do documento equivalente a CPF |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_content_type | application/json | - |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_emailtypeid | 7391c70e-aeb8-4c68-bd5c-7b5d30cf4d1d * | ID tipo de e-mail |
Projeto | Standard - TOTVS CRM-SPOTTER | totvs_crm_customerpersontype | 8cea3c86-1984-4c77-acf5-3f622c1efe5b * | ID tipo de pessoa equivalente a Física |
* É importante salientar que os valores de ID fornecidos acima são exemplos baseados na configuração padrão do TOTVS CRM. Durante a implementação da integração, é fundamental revisar e ajustar os valores de ID de acordo com o tenant do cliente. Isso garante que a integração seja realizada corretamente.
Pré-requisitos TOTVS CRM:
Cadastre um e-mail existente no TOTVS CRM e Exact Spotter para caso não seja encontrado o usuário responsável ao cadastrar um lead/oportunidade. (variável totvs_crm_default_user)
Cadastre um e-mail existente no TOTVS CRM e Exact Spotter para caso não seja encontrado o pré vendedor ao cadastrar um lead/oportunidade. (variável totvs_crm_preseller_default)
Cadastre um usuário no TOTVS CRM para a integração, este usuário deverá ser admin e ser marcado no banco como tal. Solicitar ao time de devOps da TOTVS CRM.
Crie os seguintes Workflows:
Nome | Gatilho | Ação | Filtros | URL |
Exact Spotter - Oportunidade Perdida | Oportunidade perdida | Chamar um endpoint HTTP remoto | Empresa = UNIDADE DA CORP AND ID Externo contém SPOTTER | URL do serviço do IPAAS Opportunity TOTVS CRM to Lead Exact Spotter |
Exact Spotter - Oportunidade Ganha | Oportunidade ganha | Chamar um endpoint HTTP remoto | Empresa = UNIDADE DA CORP AND ID Externo contém SPOTTER | URL do serviço do IPAAS Opportunity TOTVS CRM to Lead Exact Spotter |
Exact Spotter - Oportunidade Descartada | Oportunidade descartada | Chamar um endpoint HTTP remoto | Empresa = UNIDADE DA CORP AND ID Externo contém SPOTTER | URL do serviço do IPAAS Opportunity TOTVS CRM to Lead Exact Spotter |
Exemplo do fluxo
FAQ
É possível customizar a integração para atender às necessidades específicas de um negócio?
Sim, é possível contemplar campos customizados de interesse do cliente, porém, será necessária uma contratação adicional do serviço. A inclusão desses campos personalizados exigirá uma modificação no diagrama/pipeline do IPAAS fornecido ao cliente específico.
É importante destacar que o modelo atual do IPAAS utiliza apenas os campos padrão disponibilizados pela API do TOTVS CRM. Portanto, qualquer adição de campos personalizados requer uma alteração no IPAAS, que será realizada através do atendimento da área de serviços.
Dessa forma, o cliente terá a oportunidade de personalizar a integração de acordo com suas necessidades específicas, incluindo campos customizados de interesse. O processo de alteração será coordenado pela equipe de serviços, garantindo a correta adaptação do TOTVS CRM e o bom funcionamento da integração com o Exact Spotter