SalesTouch Docs

Fluxos de trabalho do LinkedIn

Sequências MCP confiáveis da SalesTouch para pesquisa, conversas, prospecção, engajamento e extração.

Os fluxos MCP mais sólidos usam chamadas de ferramentas pequenas e fáceis de inspecionar. Resolva primeiro as identidades, faça as alterações depois e verifique o estado dos trabalhos colocados na fila ou adiados.

Pesquisar um prospect e uma conversa

  1. Chame linkedin_accounts quando a conta for desconhecida.
  2. Resolva o membro com linkedin_lookup_profile.
  3. Encontre a conversa com linkedin_conversations_search.
  4. Carregue o contexto com linkedin_conversations_messages.
  5. Peça para o agente resumir o relacionamento antes de redigir qualquer coisa.

Prompt:

Prompt

Pesquise este perfil, encontre nossa conversa no LinkedIn, leia o histórico de mensagens e resuma o relacionamento. Não envie nada.

Enviar para uma conexão existente

  1. Leia a conversa ou chame lead_status.
  2. Confirme a mensagem exata com o usuário.
  3. Chame linkedin_message com um membro-alvo e text.
  4. Se a SalesTouch exigir a fila, tente novamente com queue: true.
  5. Informe se a ação foi enviada ou colocada na fila.

Convidar e acompanhar após a aceitação

Use linkedin_invite_then_message quando o acompanhamento só deve ser executado depois que o convite for aceito. Forneça o alvo e follow_up_message. A nota do convite é opcional.

Depois, use lead_status para verificar a aceitação do convite, o acompanhamento salvo ou o estado da mensagem na fila.

Agendar uma ação do LinkedIn

Adicione scheduled_for a qualquer mensagem, convite, sequência de convite e mensagem, curtida, comentário ou publicação. Use uma data e hora ISO 8601 com fuso horário.

A SalesTouch salva a solicitação imediatamente, mas nunca a executa antes do horário solicitado. Horários de trabalho, limites da conta ou um período de espera do LinkedIn podem adiar o valor efetivo de scheduled_for. Agendamentos explícitos têm prioridade sobre ações colocadas automaticamente na fila.

A resposta diferencia requested_for do valor efetivo de scheduled_for e informa se o evento de execução está registered, awaiting_horizon ou pending_retry. Agendamentos de longo prazo permanecem salvos na SalesTouch até entrarem no horizonte de execução.

Contas do LinkedIn com credenciais que estejam inativas se reconectam quando a ação vence. Contas antigas baseadas em cookies ainda podem exigir uma reconexão manual.

Interagir com uma publicação

  1. Resolva URLs de publicações ambíguas com linkedin_lookup_post.
  2. Chame exatamente uma ação correspondente: linkedin_like ou linkedin_comment.
  3. Use queue: true quando a ação não puder ser executada imediatamente.

Evite pedir para o agente apenas “interagir” sem especificar a ação exata e o texto do comentário.

Extrair pessoas que interagiram com uma publicação

  1. Resolva a publicação com linkedin_lookup_post.
  2. Chame scrape_linkedin_post_reactions ou scrape_linkedin_post_comments. A extração de comentários retorna por padrão os autores dos comentários principais. Defina include_replies: true apenas quando precisar dos autores das respostas.
  3. Leia a prévia embutida.
  4. Se source_paging.exhausted for false, chame scrape_linkedin_post_comments novamente com o valor retornado em source_paging.arguments. A extração continua da posição salva e preserva o modo include_replies original depois que o orçamento automático de segurança para solicitações ao provedor é atingido ou após uma interrupção recuperável do LinkedIn.
  5. Use scrape_result_page com o result_id retornado apenas para paginar os perfis já salvos por essa chamada.
  6. Use os metadados de exportação quando o conjunto completo de dados precisar ficar fora do contexto do agente.

Extrair de uma pesquisa

  • Use scrape_linkedin_search_url quando já tiver uma URL nativa de pesquisa do LinkedIn Classic para pessoas, empresas, publicações ou vagas.
  • Use scrape_linkedin_people_search, scrape_linkedin_companies_search, scrape_linkedin_posts_search ou scrape_linkedin_jobs_search para filtros estruturados do LinkedIn Classic.
  • Use scrape_sales_navigator_search_url quando já tiver uma URL nativa do Sales Navigator para pessoas ou empresas e quiser que a SalesTouch descubra o tipo de resultado.
  • Use scrape_sales_navigator_people para uma URL de pesquisa de leads do Sales Navigator ou filtros estruturados de pessoas.
  • Use scrape_sales_navigator_companies para uma URL de pesquisa de empresas do Sales Navigator ou filtros estruturados de empresas.
  • Use linkedin_sales_navigator_search_parameters para descobrir IDs específicos da conta para locais, setores, empresas, cargos e outros filtros enumerados. Defina product: "classic" para o LinkedIn Classic. O padrão continua sendo Sales Navigator por compatibilidade.
  • Use linkedin_lookup_job_posting após uma pesquisa de vagas para buscar um anúncio completo, incluindo seções opcionais de equipe de contratação, salário e benefícios.
  • Defina preview_limit para manter pequena a resposta embutida.
  • Percorra os resultados salvos em vez de solicitar toda a extração em uma única chamada.

Os valores de filtros estruturados aceitam um id conhecido ou uma query legível. Uma consulta só é usada automaticamente quando resolve um único valor exato. Se vários candidatos corresponderem, tente novamente com o ID escolhido.

Exemplo: growth hackers em Paris em empresas com 1 a 10 funcionários:

{
  "filters": {
    "current_job_title": { "include": [{ "query": "Growth Hacker" }] },
    "location": { "include": [{ "query": "Paris" }] },
    "company_headcount": [{ "min": 1, "max": 10 }]
  },
  "limit": 100,
  "preview_limit": 20
}

Exemplo: empresas de serviços de TI em Paris, usando o setor do LinkedIn como aproximação de negócio:

{
  "filters": {
    "industry": { "include": [{ "query": "IT Services and IT Consulting" }] },
    "location": { "include": [{ "query": "Paris" }] }
  },
  "limit": 1000,
  "preview_limit": 20
}

Exemplo: empresas em Paris que estão contratando:

{
  "filters": {
    "location": { "include": [{ "query": "Paris" }] },
    "hiring_on_linkedin": true,
    "department_headcount_growth": {
      "department": [{ "query": "Engineering" }],
      "min": 1
    }
  },
  "limit": 1000,
  "preview_limit": 20
}

Para encontrar pessoas apenas dentro de um resultado de empresas, primeiro chame scrape_sales_navigator_companies. Depois, passe seu result_id como company_result_id para scrape_sales_navigator_people, junto com filtros de pessoas como current_job_title. A SalesTouch valida a propriedade do resultado, a validade e a conta do LinkedIn, e aplica as empresas em lotes seguros.

{
  "company_result_id": "previous_company_result_id",
  "filters": {
    "current_job_title": { "include": [{ "query": "Directeur des ressources humaines" }] }
  },
  "limit": 100,
  "preview_limit": 20
}

Interprete corretamente a contratação e a abrangência

hiring_on_linkedin: true significa que a empresa tem pelo menos uma vaga publicada no LinkedIn. Isso não comprova que a vaga seja para desenvolvimento. Adicione department_headcount_growth para a função Engineering como sinal de intenção ou parta de um conjunto verificado de pesquisa de vagas quando o cargo precisar ser exato. “Todas as empresas” também significa todos os resultados expostos pelos filtros selecionados do Sales Navigator, sujeitos ao limite do LinkedIn. Segmente pesquisas amplas quando o aviso pedir uma busca mais restrita.

“ESN” não é uma classificação nativa de empresas do LinkedIn. Use IT Services and IT Consulting como aproximação setorial ampla e qualifique as empresas retornadas pela descrição ou pelo site, em vez de tratar uma correspondência de palavras-chave como prova.

Cancelar uma ação na fila ou um acompanhamento pendente

  1. Obtenha o identificador exato em status ou lead_status.
  2. Chame queue_cancel com exatamente um destes valores:
    • queued_action_id para cancelar um convite, uma mensagem ou outra ação na fila;
    • followup_id para cancelar uma mensagem automática em waiting_acceptance sem alterar o convite.
  3. Informe o resultado do cancelamento. Não suponha que uma solicitação local cancelou a ação remota.

Confie no estado retornado

Considere os estados de envio, fila, aceitação e cancelamento retornados pela SalesTouch como a fonte da verdade. Não deduza a execução pelo prompt original.

Verificar os convites atuais antes da prospecção

Chame lead_status ou linkedin_lookup_profile com o membro desejado e o linkedin_account_id previsto. Ambos retornam invitation_status: pending confirma um convite enviado, inclusive fora da SalesTouch; none confirma sua ausência após a leitura completa da lista atual; connected indica que o membro já está conectado; unknown indica evidências indisponíveis, incompletas, antigas ou um envio anterior sem confirmação. Consulte source, complete, coverage, checked_at, started_at, max_age_ms e reason. can_invite: false bloqueia o envio. Um perfil de segundo grau, um campo ausente ou uma fila local vazia nunca comprovam a ausência de convite.

Os convites de salestouch_status são o histórico da SalesTouch, com source: "salestouch_history" e complete: false. Em lead_status, invitation.live_status descreve a observação atual; invitation.history_status, as datas de contato e os campos de fila descrevem atividades registradas. Um convite na fila continua sendo trabalho agendado, mesmo com status atual desconhecido. As verificações somente de leitura não enviam nada nem criam histórico de convites.

As duas ferramentas verificam novamente imediatamente antes do envio real, inclusive para ações na fila e solicitações scheduled_for. Elas ignoram convites já pendentes. linkedin_invite_then_message mantém um único follow-up aguardando aceitação, inclusive para convites externos. Se já houver conexão, o fluxo continua com o follow-up. invitation_status_unknown ou invitation_outcome_unknown interrompe o convite; consulte lead_status antes de tentar novamente. Um timeout após o envio pode significar que o linkedin aceitou a solicitação. Resultados de envio desconhecidos continuam bloqueados mesmo com retry_invitation; reenviar explicitamente após a retirada de um envio confirmado exige uma nova verificação completa de ausência.

O status atual é uma observação limitada, não uma reserva atômica no linkedin. Uma leitura que ultrapassa seu limite de páginas ou tempo permanece desconhecida; uma ação externa pode ocorrer junto com o envio final. A SalesTouch serializa suas próprias tentativas e verifica resultados ambíguos sem um segundo envio. Cancelamentos na fila se aplicam antes da execução; não podem recuperar um envio remoto já em andamento.

Um checked_at recente não basta: provider_freshness: "origin_confirmed" indica que a resposta foi verificada como proveniente do provedor. Uma resposta em cache ou atualização não verificável retorna unknown e bloqueia o envio. Essas verificações podem consumir os limites de leitura do provedor; a SalesTouch não ignora esses limites.