Flujos de trabajo de LinkedIn
Secuencias MCP fiables de SalesTouch para investigación, conversaciones, prospección, interacción y extracción.
Los flujos MCP más sólidos utilizan llamadas pequeñas y fáciles de revisar. Resuelve primero las identidades, realiza después los cambios y comprueba el estado del trabajo puesto en cola o aplazado.
Investigar un prospecto y su conversación
- Llama a
linkedin_accountssi no conoces la cuenta. - Resuelve el miembro con
linkedin_lookup_profile. - Busca la conversación con
linkedin_conversations_search. - Carga el contexto con
linkedin_conversations_messages. - Pide al agente que resuma la relación antes de redactar nada.
Prompt:
Busca este perfil, encuentra nuestra conversación de LinkedIn, lee el historial de mensajes y resume la relación. No envíes nada.
Enviar a un contacto existente
- Lee la conversación o llama a
lead_status. - Confirma el mensaje exacto con el usuario.
- Llama a
linkedin_messagecon un miembro objetivo ytext. - Si SalesTouch exige usar la cola, repite con
queue: true. - Indica si la acción se ha enviado o puesto en cola.
Invitar y hacer seguimiento tras la aceptación
Usa linkedin_invite_then_message cuando el seguimiento solo deba ejecutarse tras la aceptación de la invitación. Proporciona el objetivo y follow_up_message. La nota de invitación es opcional.
Usa después lead_status para comprobar la aceptación, el seguimiento guardado o el estado del mensaje en cola.
Programar una acción de LinkedIn
Añade scheduled_for a cualquier mensaje, invitación, secuencia de invitación y mensaje, Me gusta, comentario o publicación. Usa una fecha y hora ISO 8601 con zona horaria.
SalesTouch guarda la solicitud de inmediato, pero nunca la ejecuta antes del momento solicitado. El horario de trabajo, los límites de la cuenta o un periodo de espera de LinkedIn pueden retrasar el valor efectivo de scheduled_for. Las programaciones explícitas tienen prioridad sobre las acciones puestas en cola automáticamente.
La respuesta distingue requested_for del valor efectivo de scheduled_for e indica si el evento de ejecución está registered, awaiting_horizon o pending_retry. Las programaciones a largo plazo permanecen guardadas en SalesTouch hasta que entran en el horizonte de ejecución.
Las cuentas de LinkedIn con credenciales que estén inactivas se reconectan cuando vence la acción. Las cuentas antiguas basadas en cookies todavía pueden requerir una reconexión manual.
Interactuar con una publicación
- Resuelve las URL de publicaciones ambiguas con
linkedin_lookup_post. - Llama a una sola acción que corresponda:
linkedin_likeolinkedin_comment. - Usa
queue: truecuando la acción no pueda ejecutarse de inmediato.
No pidas al agente que «interactúe» sin especificar la acción exacta y el texto del comentario.
Extraer las interacciones de una publicación
- Resuelve la publicación con
linkedin_lookup_post. - Llama a
scrape_linkedin_post_reactionsoscrape_linkedin_post_comments. La extracción de comentarios devuelve por defecto los autores de comentarios raíz. Defineinclude_replies: truesolo cuando necesites los autores de las respuestas. - Lee la vista previa integrada.
- Si
source_paging.exhaustedesfalse, vuelve a llamar ascrape_linkedin_post_commentscon el valor devuelto ensource_paging.arguments. La extracción continúa desde la posición guardada y conserva el modoinclude_repliesoriginal tras alcanzar el presupuesto automático de seguridad para solicitudes al proveedor o sufrir una interrupción recuperable de LinkedIn. - Usa
scrape_result_pagecon elresult_iddevuelto únicamente para recorrer los perfiles ya guardados por esa llamada. - Usa los metadatos de exportación cuando el conjunto completo de datos deba salir del contexto del agente.
Extraer desde una búsqueda
- Usa
scrape_linkedin_search_urlsi ya tienes una URL de búsqueda nativa de LinkedIn Classic para personas, empresas, publicaciones o empleos. - Usa
scrape_linkedin_people_search,scrape_linkedin_companies_search,scrape_linkedin_posts_searchoscrape_linkedin_jobs_searchpara filtros estructurados de LinkedIn Classic. - Usa
scrape_sales_navigator_search_urlsi ya tienes una URL nativa de Sales Navigator para personas o empresas y quieres que SalesTouch deduzca el tipo de resultado. - Usa
scrape_sales_navigator_peoplepara una URL de búsqueda de leads de Sales Navigator o filtros estructurados de personas. - Usa
scrape_sales_navigator_companiespara una URL de búsqueda de empresas de Sales Navigator o filtros estructurados de empresas. - Usa
linkedin_sales_navigator_search_parameterspara descubrir identificadores específicos de la cuenta para ubicaciones, sectores, empresas, puestos y otros filtros enumerados. Defineproduct: "classic"para LinkedIn Classic. Sales Navigator sigue siendo el valor predeterminado por compatibilidad. - Usa
linkedin_lookup_job_postingdespués de una búsqueda de empleo para obtener una oferta completa, incluidas las secciones opcionales sobre equipo de contratación, salario y beneficios. - Define
preview_limitpara mantener pequeña la respuesta integrada. - Recorre los resultados guardados en lugar de solicitar toda la extracción en una sola llamada.
Los valores de los filtros estructurados aceptan un id conocido o una query legible. Una consulta se utiliza automáticamente solo cuando resuelve un valor exacto. Si coinciden varios candidatos, repite con el identificador seleccionado.
Ejemplo: growth hackers en París en empresas de 1 a 10 empleados:
{
"filters": {
"current_job_title": { "include": [{ "query": "Growth Hacker" }] },
"location": { "include": [{ "query": "Paris" }] },
"company_headcount": [{ "min": 1, "max": 10 }]
},
"limit": 100,
"preview_limit": 20
}Ejemplo: empresas de servicios informáticos en París, usando el sector de LinkedIn como aproximación empresarial:
{
"filters": {
"industry": { "include": [{ "query": "IT Services and IT Consulting" }] },
"location": { "include": [{ "query": "Paris" }] }
},
"limit": 1000,
"preview_limit": 20
}Ejemplo: empresas de París que están contratando:
{
"filters": {
"location": { "include": [{ "query": "Paris" }] },
"hiring_on_linkedin": true,
"department_headcount_growth": {
"department": [{ "query": "Engineering" }],
"min": 1
}
},
"limit": 1000,
"preview_limit": 20
}Para buscar personas únicamente dentro de un resultado de empresas, llama primero a scrape_sales_navigator_companies. Después, pasa su result_id como company_result_id a scrape_sales_navigator_people, junto con filtros de personas como current_job_title. SalesTouch valida la propiedad, caducidad y cuenta de LinkedIn del resultado, y aplica las empresas en lotes seguros.
{
"company_result_id": "previous_company_result_id",
"filters": {
"current_job_title": { "include": [{ "query": "Directeur des ressources humaines" }] }
},
"limit": 100,
"preview_limit": 20
}Interpreta correctamente la contratación y la exhaustividad
hiring_on_linkedin: true significa que la empresa tiene al menos una oferta de empleo en LinkedIn. No demuestra que el puesto abierto sea para desarrollo. Añade department_headcount_growth para la función Engineering como señal de intención, o parte de un conjunto verificado de búsqueda de empleos cuando el puesto deba ser exacto. «Todas las empresas» también significa todos los resultados expuestos por los filtros seleccionados de Sales Navigator, sujetos al límite de LinkedIn. Segmenta las búsquedas amplias cuando la advertencia te pida acotarlas.
«ESN» no es una clasificación empresarial nativa de LinkedIn. Usa IT Services and IT Consulting como aproximación sectorial amplia y califica después las empresas devueltas a partir de su descripción o sitio web, en lugar de considerar una coincidencia de palabras clave como una prueba.
Cancelar una acción en cola o un seguimiento pendiente
- Obtén el identificador exacto desde
statusolead_status. - Llama a
queue_cancelcon uno solo de estos valores:queued_action_idpara cancelar una invitación, un mensaje u otra acción en cola;followup_idpara cancelar un mensaje automático en estadowaiting_acceptancesin modificar su invitación.
- Informa del resultado de la cancelación. No supongas que una solicitud local canceló la acción remota.
Confía en el estado devuelto
Considera los estados enviado, en cola, aceptado y cancelado que devuelve SalesTouch como fuente de verdad. No deduzcas la ejecución a partir del prompt original.
Comprobar las invitaciones actuales antes de contactar
Llama a lead_status o linkedin_lookup_profile con el miembro objetivo y el linkedin_account_id previsto. Ambos devuelven invitation_status: pending confirma una invitación saliente, incluso enviada fuera de SalesTouch; none confirma su ausencia tras leer la lista actual completa; connected indica que el miembro ya está conectado; unknown indica pruebas no disponibles, incompletas, antiguas o un envío anterior sin resolver. Consulta source, complete, coverage, checked_at, started_at, max_age_ms y reason. can_invite: false bloquea el envío. Un perfil de segundo grado, un campo ausente o una cola local vacía nunca demuestran la ausencia de una invitación.
Las invitaciones de salestouch_status son el historial de SalesTouch, con source: "salestouch_history" y complete: false. En lead_status, invitation.live_status es la observación actual; invitation.history_status, las fechas de contacto y los campos de cola describen actividad guardada. Una invitación en cola sigue siendo una tarea programada aunque su estado actual sea desconocido. Las consultas de solo lectura no envían nada ni crean historial de invitaciones.
Ambas herramientas comprueban de nuevo justo antes del envío real, también para acciones en cola y solicitudes scheduled_for. Omiten invitaciones ya pendientes. linkedin_invite_then_message conserva un solo seguimiento hasta la aceptación, incluso para invitaciones externas. Si ya existe conexión, el flujo continúa con el seguimiento. invitation_status_unknown o invitation_outcome_unknown detiene la invitación; consulta lead_status antes de reintentar. Un timeout tras enviar puede significar que linkedin aceptó la solicitud. Los resultados de envío desconocidos siguen bloqueados incluso con retry_invitation; reenviar expresamente tras retirar un envío confirmado exige una nueva comprobación completa de ausencia.
El estado actual es una observación limitada, no una reserva atómica en linkedin. Una lectura que supera su límite de páginas o tiempo permanece desconocida; una acción externa puede coincidir con el envío final. SalesTouch serializa sus propios intentos y resuelve resultados ambiguos sin un segundo envío. La cancelación de tareas en cola se aplica antes de ejecutarlas; no puede recuperar un envío remoto ya iniciado.
Un checked_at reciente no basta: provider_freshness: "origin_confirmed" indica que se ha verificado que la respuesta procede del proveedor. Una respuesta en caché o una actualidad no verificable devuelve unknown y bloquea el envío. Estas comprobaciones pueden consumir los límites de lectura del proveedor; SalesTouch no los omite.