cold outreach

lemlist

cold outreach.

manage lemlist cold outreach campaigns. campaign list, detailed stats, lead management, sequence activities.

add to otoauth : api keyprefix : lemlist_*

setup & usage

⚠ clé api lemlist

crée une clé API dans lemlist (Settings → Integrations → API), puis colle-la dans oto (page compte / connecteurs).

  • chacun voit SES données : ta propre clé est requise
  • ▸ l'API lemlist en entier

    le connecteur reflète les 141 routes documentées, sans exception. par famille :

    campagneslemlist_list_campaigns, lemlist_campaign, lemlist_sequence, lemlist_schedule, lemlist_get_campaign_stats

  • « crée une campagne "Q4 outbound", ajoute une étape email à J+3 »
  • « qu'est-ce qui bloque le lancement de cette campagne ? » (sender manquant, DNS, limite journalière)
  • « mets la fenêtre d'envoi sur 8h-12h du lundi au jeudi », « duplique-la pour l'équipe NL »
  • « stats de la campagne X », « compare mes 5 campagnes du trimestre »
  • leadslemlist_create_lead, lemlist_lead, lemlist_enrich*

  • « ajoute ce lead, trouve son email et vérifie-le »
  • « mets ce lead en pause sur toutes les campagnes », « marque-le intéressé »
  • « importe les leads du filtre HubSpot X dans cette campagne »
  • CRM lemlistlemlist_contact, lemlist_company, lemlist_team(op="fields")

  • ⚠️ un contact n'est pas un lead : le lead est l'exemplaire d'une personne DANS une campagne, le contact est la personne elle-même. c'est la confusion la plus coûteuse ici.
  • inboxlemlist_inbox (conversations, brouillons, libellés) et lemlist_inbox_send

    désinscriptionslemlist_unsubscribe : ⚠️ trois listes distinctes (emails/domaines v1, variables v2, drapeau do-not-contact d'un contact) ; écrire dans l'une n'écrit pas dans les autres

    signauxlemlist_watchlist : boîtes qui recrutent, levées, changements de poste…

    le restelemlist_task, lemlist_database (base partagée + personas), lemlist_team, lemlist_mailbox (connexion SMTP/IMAP + lemwarm), lemlist_deliverability, lemlist_webhook, lemlist_get_activities

    · ce qui envoie, et ce qui est masqué par défaut

    quatre tools envoient ou arment l'envoi. tous les quatre sont masqués par défaut — ils restent appelables, il faut juste les activer (oto_enable_tool <nom>) :

  • lemlist_campaign_start — démarrer la campagne déroule la séquence pour tous ses leads lancés
  • lemlist_launch_lead — sortir un lead de la revue manuelle
  • lemlist_inbox_send — email / LinkedIn / WhatsApp directs : ni campagne, ni séquence, ni revue devant eux, le message part
  • lemlist_campaign_auto_review — n'envoie rien lui-même, mais fait partir tout lead ajouté ensuite : avec lui, lemlist_create_lead devient un envoi
  • tout le reste travaille sur de la donnée ou sur une campagne qui n'a encore rien à envoyer.

    ⚠️ une campagne créée par l'API naît `state=running`, contrairement à ce que son status (« draft ») laisse croire — vérifié en live le 31/08. elle n'envoie rien tant qu'aucun lead n'est lancé, mais lemlist_campaign(op="start") répond « already running » et c'est op="pause" qui est le vrai interrupteur. pour construire tranquillement : créer puis mettre en pause. (une campagne dupliquée, elle, naît bien en pause.)

    pause ≠ rappel : mettre en pause arrête la progression, pas ce qui est déjà programmé.

    deux surfaces envoient indirectement, et restent visibles en le disant : une watch list réglée sur push_to_campaign alimente une campagne toute seule, et lemlist_mailbox(op="lemwarm_start") envoie — mais dans le réseau de chauffe, jamais vers un prospect.

    · pièges de l'API lemlist
  • supprimer un lead ≠ le désinscrire, et lemlist sert les deux par la même route, le défaut étant le doux. ici les deux ops sont nommées à part (op="delete" vs op="unsubscribe").
  • `lemlist_lead(op="pause")` sans `campaign_id` met le lead en pause sur TOUTES les campagnes, pas sur une.
  • `lemlist_contact(op="list_manage")` AJOUTE par défaut ; action="remove" retire.
  • supprimer une étape est refusé tant que la campagne tourne — mets-la en pause d'abord.
  • les enrichissements dépensent des crédits (lemlist_team(op="credits") les compte).
  • · écarts doc↔API relevés en live (31/08/2026)

    le connecteur les absorbe déjà ; c'est ici pour comprendre un message d'erreur, pas pour agir.

  • lemlist_task(op="create") exige record_id (le contact ou le lead), que la doc lemlist dit optionnel.
  • lemlist_watchlist(op="create") : lis op="filters" avant — chaque type a ses filtres obligatoires, les valeurs doivent venir de op="filter_values", et les nombres voyagent en chaînes.
  • lemlist_campaign(op="export_leads") filtre sur state="all" par défaut : le défaut de lemlist rend une liste vide qui se lit « pas de leads ».
  • ce que ce compte ne permet pas (limite de plan, pas un bug) : les étapes LinkedIn (Upgrade your plan), les endpoints CRM (crm_filters, crm_users, import_crm → « Endpoint not available » sans intégration CRM), et l'historique d'une watch list (bêta non activée).
  • outils

    chargement…

    usage

    claude code — install the oto plugin — claude plugin marketplace add otomata-tech/oto-plugin — mcp + skill configured.
    claude.ai — add mcp.oto.cx/mcp as a custom connector (guide)
    clipipx install oto-cli then oto lemlist …