> ## Documentation Index
> Fetch the complete documentation index at: https://docs.exact.ws/llms.txt
> Use this file to discover all available pages before exploring further.

# Início rápido

> Siga o tutorial de 10 minutos para entender como Searching funciona

## Introdução

Este guia apresenta uma visão geral sobre o Searching.

<Tip>
  Consulte a [API de Enriquecimentos](/enrichments) para obter exemplos de
  solicitações usando a sua linguagem de programação favorita.
</Tip>

## Pré-requisitos

<AccordionGroup>
  <Accordion icon="key" title="Obtenha uma chave de API">
    As APIs da plataforma são protegidas. Solicite a sua chave de API através
    [deste formulário](https://forms.gle/tGRn47Py1UrtiF3F9).
  </Accordion>

  <Accordion icon="rectangle-terminal" title="Instale um cliente de API">
    Você pode seguir o tutorial com o seu cliente de API favorito, mas
    recomendamos que utilize [Postman](https://www.postman.com/),
    [Insomnia](https://insomnia.rest/) ou [cURL](https://curl.se/).
  </Accordion>
</AccordionGroup>

## Conceitos

<AccordionGroup>
  <Accordion icon="bolt" title="Ação">
    O Searching é uma plataforma de enriquecimento de dados baseada em ações.

    Uma ação é uma unidade de trabalho, que recebem parâmetros de entrada (*data points*), executa uma tarefa de enriquecimento e fornece um resultado de saída.

    Cada ação possui uma finalidade específica. Por exemplo: "*pesquisar empresa por CNPJ na base de dados da Receita Federal do Brasil*".
  </Accordion>

  <Accordion icon="arrow-progress" title="Workflow">
    Ações podem ser encadeadas para produzir resultados mais relevantes. No contexto do Searching, esses encadeamentos são chamados de workflows.

    Um workflow é essencialmente uma coleção de ações organizadas em uma ordem específica, onde a saída de uma ação pode servir como entrada para a próxima.

    Workflows permitem a criação de processos de enriquecimento de dados multifásicos, otimizando a eficiência e a precisão dos dados enriquecidos.
  </Accordion>

  <Accordion icon="input-pipe" title="Entrada">
    Conjunto de dados fornecidos ao Searching como ponto de partida para o enriquecimento.
  </Accordion>

  <Accordion icon="square-poll-horizontal" title="Saída">
    Resultados obtidos através de de um processo de enriquecimento.
  </Accordion>
</AccordionGroup>

## Caso de uso: Prospecção ativa

Para fins de exemplo, vamos simular o processo de prospeção de uma empresa de tecnologia. Esta empresa está interessada em divulgar uma API para enriquecimento de dados. Os principais patrocinadores costumam ser pessoas técnicas e do setor de TI.

Após receber uma lista de CNPJs de empresas brasileiras, precisamos buscar mais informações para entrar em contato e oferecer o produto.

Vamos começar a nossa jornada pelo CNPJ `21.593.012/0001-47`.

### Plano

Geralmente, o pré-vendedor precisa executar uma série de tarefas manualmente.

<Steps>
  <Step title="Pesquisar empresa por CNPJ">
    Consultar a base de dados pública da [Receita
    Federal](/datasources/public/rfb) para obter informações básicas sobre a
    empresa: razão social, atividades e afins.
  </Step>

  <Step title="Buscar mais informações sobre a empresa">
    Usando dados encontrados na etapa anterior, como o nome fantasia e o
    endereço, pesquisar a empresa no [Google](/datasources/public/google) para
    descobrir o site e dados de contato.
  </Step>

  <Step title="Encontrar colaboradores">
    Após ter uma ideia geral da empresa, o pré-vendedor precisa procurar colaboradores com poder de decisão (patrocinadores) para oferecer o produto.

    Geralmente, isso inclui pesquisas no [LinkedIn](/datasources/public/linkedin) e no [Google](/datasources/public/google).
  </Step>

  <Step title="Descobrir formas de contato">
    Infelizmente, nem sempre os perfis em redes sociais incluem um email ou telefone para contato.

    Neste momento, o pré-vendedor deve recorrer a outras ferramentas, como o [Hunter.io](https://hunter.io/) para descobrir emails associados ao nome e domínio corporativo.
  </Step>

  <Step title="Consolidar resultados">
    Por fim, o pré-vendedor deve agregar e analisar todos os dados coletados nas
    etapas anteriores, em um formato padronizado e coerente, antes de entrar em
    contato.
  </Step>
</Steps>

O *Searching* é capaz de realizar todas estas ações automaticamente.

### Enriquecimento de empresas

Vamos iniciar o processo de descoberta usando o workflow de [Enriquecimento de Empresa](/enrichments/enriquecer-empresa), fornecendo o CNPJ como único parâmetro de entrada:

```bash theme={null}
curl 'https://exact.ws/enrichments/company' \
  -H 'Authorization: Bearer <api_key>' \
  -d '{"id": "21593012000147"}'
```

Como resposta, recebemos o seguinte retorno:

```json theme={null}
{
  "status": "RUNNING"
}
```

Isto significa que a solicitação foi recebida com sucesso e está em processamento. Podemos repetir a requisição até obter um resultado final de execução do workflow. Depois de algumas tentativas, recebemos a seguinte resposta:

```json theme={null}
{
  "status": "COMPLETED",
  "data": {
    "id": "21.593.012/0001-47",
    "company_name": "EXACT DESENVOLVIMENTO E PROGRAMACAO DE SOFTWARE LTDA",
    "trade_name": "EXACT SALES",
    "street_type": "RODOVIA",
    "street": "VIRGILIO VARZEA",
    "number": "587",
    "district": "MONTE VERDE",
    "city": "FLORIANOPOLIS",
    "state": "SC",
    "zipcode": "88032-000",
    "site": "https://www.exactsales.com.br/",
    "domain_name": "exactsales.com.br",
    "domains": [
      /* ... */
    ],
    "emails": ["fiscal@totvs.com.br"],
    "phones": ["(11) 4004-0015", "(48) 3025-7750", "(48) 3181-0180"],
    "profiles": [
      {
        "platform": "FACEBOOK",
        "url": "https://facebook.com/exactsales"
      },
      {
        "platform": "LINKEDIN",
        "url": "https://linkedin.com/company/exact-sales"
      }
    ],
    "main_activity": "6203100",
    "secondary_activities": [
      "6201501",
      "6202300",
      "6204000",
      "6209100",
      "8230001",
      "8599604"
    ],
    "share_capital": "34429907.00",
    "size": "OTHER",
    "started_at": "2014-12-17",
    "partners": [
      {
        "name": "THEO OROSCO DA SILVA",
        "type": "PERSON"
      },
      {
        "name": "FELIPE SILVA ROMAN",
        "type": "PERSON"
      },
      {
        "name": "RD GESTAO E SISTEMAS S.A.",
        "type": "LEGAL_ENTITY"
      },
      {
        "name": "JULIANO DE MIRANDA TUBINO",
        "type": "PERSON"
      },
      {
        "name": "RAPHAEL SOARES DUARTE",
        "type": "PERSON"
      }
    ],
    "active": true,
    "headquarters": true,
    "mei": false,
    "simples": false,
    "last_updated_at": "2024-07-12T19:25:21.629941Z"
  }
}
```

Perceba que, além de recuperar informações cadastrais na base de dados da Receita Federal do Brasil, o **Searching** conseguiu identificar:

<Steps>
  <Step title="Site e domínios associados da empresa">
    Pode ser utilizado para encontrar mais informações sobre a empresa, além de
    fornecer o domínio corporativo para envio de emails.
  </Step>

  <Step title="Perfis em redes sociais">
    Podem ser utilizados como *fallback* se não encontramos um email para
    contato com os colaboradores.
  </Step>

  <Step title="Números de telefone para contato">
    Este não é um número do setor de contabilidade, mas um telefone comercial
    com atendentes.
  </Step>
</Steps>

### Buscar contatos

Em posse de informações básicas sobre a empresa, precisamos encontrar decisores interessados em nossa solução.

Podemos usar o workflow de [Buscar contatos](/enrichments/buscar-contatos), informando o nome fantasia e o CNPJ da empresa como parâmetros de entrada.

<Tip>Utilize a saída do workflow anterior como entrada</Tip>

```bash theme={null}
curl 'https://exact.ws/enrichments/contacts' \
  -H 'Authorization: Bearer <api_key>' \
  -d '{"company_id": "21593012000147", "company_name":"Exact Sales"}'
```

Depois de alguns instantes, recebemos uma lista compreensiva de pessoas que trabalham na empresa.

```json theme={null}
{
  "status": "COMPLETED",
  "data": {
    "contacts": [
      {
        "last_updated_at": "2024-07-12T19:46:15.341969Z",
        "name": "THEO OROSCO",
        "position": "CEO - Exact Sales",
        "profiles": [
          {
            "platform": "LINKEDIN",
            "url": "https://br.linkedin.com/in/theoorosco"
          }
        ]
      },
      {
        "last_updated_at": "2024-07-12T19:46:15.341990Z",
        "name": "FELIPE ROMAN",
        "position": "CTO - Exact Sales",
        "profiles": [
          {
            "platform": "LINKEDIN",
            "url": "https://br.linkedin.com/in/felipe-roman-35714b66"
          }
        ]
      },
      {
        "last_updated_at": "2024-07-12T19:46:15.341997Z",
        "name": "LUCAS RODRIGUES MIGUEL",
        "position": "Coordenador de pré-vendas - Exact Sales",
        "profiles": [
          {
            "platform": "LINKEDIN",
            "url": "https://br.linkedin.com/in/lucasrodriguesmiguel"
          }
        ]
      }
      // ...
    ]
  }
}
```

### Identificar emails

Ótimo! Após analisar os resultados, identificamos que a empresa e o contato “Felipe Roman” se encaixam no perfil de cliente ideal. Agora, devemos adicionar este lead no nosso funil de vendas outbound! 🚀

Para isso, precisamos identificar o email do contato. Mais uma vez, vamos recorrer ao Searching.

O workflow [Encontrar emails](/enrichments/encontrar-emails) realiza o processo de [email guessing](https://en.wikipedia.org/wiki/Email-address_harvesting) e retorna emails válidos para contato. Basta informar o domínio da empresa e o nome do contato, obtidos em etapas anteriores.

```bash theme={null}
curl 'https://exact.ws/enrichments/emails' \
  -H 'Authorization: Bearer <api_key>' \
  -d '{"domain_name": "exactsales.com.br", "name":"FELIPE ROMAN"}'
```

Depois de alguns instantes, recebemos uma lista com os prováveis emails do contato:

```json theme={null}
{
  "status": "COMPLETED",
  "data": {
    "emails": [
      {
        "address": "froman@exactsales.com.br",
        "issues": [],
        "reason": "Este email foi validado com o servidor e temos certeza de que ele existe",
        "status": "deliverable"
      }
    ]
  }
}
```

## Conclusão

Este guia mostrou como usar os enriquecimentos da API do Searching para descobrir contatos de uma empresa, partindo apenas de um CNPJ.

Perceba que as saídas de cada workflow podem ser utilizadas como entradas para outros workflows.
