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.
O fluxo de integração tem por objetivo principal integrar leads/clientes, contatos, oportunidades e atividades do Exact Spotter com o TOTVS CRM para que o profissional de vendas continue o processo de evolução no TOTVS CRM de uma oportunidade inicialmente gerada com o uso do Spotter por um assistente de vendas ou pré-vendedor.
Diagrama da integração de Leads/Oportunidades com origem no Exact Spotter para o TOTVS CRM
![Integrações > 7.1 - [TOTVS Corp] Exact Spotter - TOTVS CRM > image-2024-7-24_9-50-56.png](/download/attachments/859057685/image-2024-7-24_9-50-56.png?version=1&modificationDate=1721825764607&api=v2)
Diagrama da integração TOTVS CRM → Exact Spotter
![Integrações > 7.1 - [TOTVS Corp] Exact Spotter - TOTVS CRM > image-2024-7-24_9-51-34.png](/download/attachments/859057685/image-2024-7-24_9-51-34.png?version=1&modificationDate=1721825764493&api=v2)
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:
![Integrações > 7.1 - [TOTVS Corp] Exact Spotter - TOTVS CRM > image-2024-7-24_14-18-25.png](/download/attachments/859057685/image-2024-7-24_14-18-25.png?version=1&modificationDate=1721841505587&api=v2)
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 |
É necessário contratar o pacote Essential ou superior do Exact Spotter.
Clone o diagrama de uma unidade de negócio existente no projeto Standard-CRM-Spotter-PRODUCAO, no IPAAS. Como sugestão, clonar o diagrama TSE001 - TOTVS SAO PAULO
Para isso, realize os seguintes procedimentos:
![Integrações > 7.1 - [TOTVS Corp] Exact Spotter - TOTVS CRM > image-2025-9-8_9-28-56.png](/download/attachments/859057685/image-2025-9-8_9-28-56.png?version=1&modificationDate=1757334533857&api=v2)
![Integrações > 7.1 - [TOTVS Corp] Exact Spotter - TOTVS CRM > image-2025-9-8_9-29-48.png](/download/attachments/859057685/image-2025-9-8_9-29-48.png?version=1&modificationDate=1757334586500&api=v2)
![Integrações > 7.1 - [TOTVS Corp] Exact Spotter - TOTVS CRM > image-2025-9-8_9-31-50.png](/download/attachments/859057685/image-2025-9-8_9-31-50.png?version=1&modificationDate=1757334708277&api=v2)
![Integrações > 7.1 - [TOTVS Corp] Exact Spotter - TOTVS CRM > image-2025-9-8_9-34-1.png](/download/attachments/859057685/image-2025-9-8_9-34-1.png?version=1&modificationDate=1757334839303&api=v2)
![Integrações > 7.1 - [TOTVS Corp] Exact Spotter - TOTVS CRM > image-2025-9-8_9-35-55.png](/download/attachments/859057685/image-2025-9-8_9-35-55.png?version=1&modificationDate=1757334952730&api=v2)
![Integrações > 7.1 - [TOTVS Corp] Exact Spotter - TOTVS CRM > image-2025-9-8_9-38-19.png](/download/attachments/859057685/image-2025-9-8_9-38-19.png?version=1&modificationDate=1757335096923&api=v2)
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.
O fluxo de integração utiliza variáveis para que seja possível integrar mais unidades de negócio sem a necessidade de criar um projeto completo de integração.
As variáveis adotadas para cada unidade de negócio ficam armazenadas em um objeto personalizado do CRM, com o cadastro disponível em:
> Telas customizadas > Variáveis CRM x Spotter
Devem ser preenchidos os campos do formulário para cada unidade de negócio, abaixo:
| Coluna | Valor de exemplo | Observação |
|---|---|---|
| DIAGRAMA IPAAS | TSE000 - TOTVS TESTE | Nome do diagrama da unidade clonada no iPaaS |
| CRM COMPANYID | ab58f2c6-3e15-46a1-88a2-bce7f3d3a2dx | Identificador no CRM da unidade de negócio, cadastrado como empresa |
| CRM ROLE ID | ddf7aab8-d605-475e-99c4-d7af93259978 | Identificador no CRM do papel do usuário |
| CRM BEARER TOKEN | Bearer TOKEN | Token do usuário de integração do TOTVS CRM criado exclusivamente para a integração da unidade em questão. OBS: esse usuário é importante para diferenciar as demais unidades caso o time interno precise identificar problemas. OBS2: esse valor é pego da seguinte forma:
|
| CRM ID AGRUPADOR DE VENDA | 0034 | Código do agrupador de venda padrão para a oportunidade, para a unidade de negócio |
| CRM DESCRIÇÃO AGRUPADOR DE VENDA | TRADICIONAL | Descrição do agrupador de venda padrão para a oportunidade, para a unidade de negócio |
| SPOTTER TOKEN EXACT | 5c895e3f-e498-4a6d-b191-819660cbe523 | Token do usuário de integração do Spotter, localizado em: configuracoes/integracoes
|
| SPOTTER DEFAULT PRE SELLER | [email protected] | E-mail do usuário padrão cadastrado como pré-vendedor, utilizado caso não encontre o email do pré-vendedor da oportunidade no Spotter |
| SPOTTER DEFAULT USER | [email protected] | E-mail do usuário padrão cadastrado como vendedor, utilizado caso não encontre o email do pré-vendedor da oportunidade no Spotter |
Após configurado as variáveis específicas da unidade, é necessário criar os Workflows que dispara a volta da atualização da oportunidade para o Spotter
| Nome | Gatilho | Ação | Filtros | URL URL do serviço do IPAAS Opportunity TOTVS CRM to Lead Exact Spotter
|
| Exact Spotter - Oportunidade Perdida | Oportunidade perdida | Chamar um endpoint HTTP remoto | Empresa = UNIDADE DA CORP AND ID Externo contém SPOTTER | |
| Exact Spotter - Oportunidade Ganha | Oportunidade ganha | Chamar um endpoint HTTP remoto | Empresa = UNIDADE DA CORP AND ID Externo contém SPOTTER | |
| Exact Spotter - Oportunidade Descartada | Oportunidade descartada | Chamar um endpoint HTTP remoto | Empresa = UNIDADE DA CORP AND ID Externo contém SPOTTER |
Para que o lead/cliente seja integrado corretamente com o TOTVS CRM, é necessário cadastrar o evento leadqualified no Exact Spotter que chamará o diagrama TSE000 - TOTVS TESTE que criamos acima como exemplo.
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 o evento.
Segue documentação para auxilio: https://exactspotter.docs.apiary.io/#/reference/0/webhooks-insercao
O evento que vamos adicionar é:
Com o seguinte body:
{
"event": "event.leadqualified",
"url": "URL do Webhook do diagrama TSE000 - TOTVS TESTE"
} |
Após isso, todo lead qualificado no Exact Spotter será integrado com o TOTVS CRM.