AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Envoyer Sequence

skill-hugrowth98-superfounder-os-envoyer-sequence · by hugrowth98

>

— No reviews yet
0 installs
0 views
— view→install

Install

$ agentstack add skill-hugrowth98-superfounder-os-envoyer-sequence

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • ✓ Prompt-injection patterns
  • ✓ Secret / credential exfiltration
  • ✓ Dangerous shell & filesystem operations
  • ✓ Untrusted network calls
  • ✓ Known-malicious package signatures

What it can access

  • ✓ Network access No
  • ✓ Filesystem access No
  • ✓ Shell / process execution No
  • ● Environment & secrets Used
  • ✓ Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-hugrowth98-superfounder-os-envoyer-sequence)

Reliability & compatibility

✓ Security review passed
0 installs to date
— no reviews yet
● 3d ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Envoyer Sequence? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Outil

Lisez 05_Departements/Go-to-Market/OUTILS.md : canal_email: lemlist (API Lemlist, clé LEMLIST_API_KEY), canal_linkedin: unipile (scripts de ce skill, compte LinkedIn de l'utilisateur) ou lemlist (étapes LinkedIn dans la séquence Lemlist). Lisez 05_Departements/Go-to-Market/GARDE-FOUS.md avant tout envoi. Outil non branché : dites-le, renvoyez vers connecter-outils, n'envoyez rien par un autre moyen.

Email, par l'API Lemlist en CLI : scripts/envoyer_lemlist.py (filtre la liste, choisit ou crée la campagne, pousse les leads dédoublonnés avec leurs variables, démarre avec --lancer, met en pause avec --pauser, liste les campagnes avec --lister). La séquence elle-même (étapes, textes, expéditeurs, cadence) s'écrit dans Lemlist, avec les textes produits par cold-email ; l'API ne crée que la campagne et les leads. Le MCP Lemlist reste utilisable en plus (stats, aperçu d'email) s'il est branché. LinkedIn via Unipile : scripts/envoyer_linkedin.py (invitation puis message, POST /api/v1/users/invite et POST /api/v1/chats).

Entrée

Un CSV normalisé qualifié, dédoublonné contre le CRM, avec les messages écrits par cold-email dans des colonnes nommées (icebreaker, message_1, note_invitation, var_preuve...), email et email_statut pour l'email, linkedin_url ou provider_id pour LinkedIn, et exclu, ne_plus_contacter à jour (verifier-reponses).

Sortie

  • Email : Listes-prospection/envoyer-sequence___lemlist.csv (colonnes Lemlist :

email, firstName, lastName, companyName, jobTitle, linkedinUrl, phone, icebreaker, variables var_*), puis la campagne Lemlist avec ses leads, en pause tant que l'utilisateur n'a pas dit "lance".

  • LinkedIn : ..._invitation.csv ou ..._message.csv, mêmes lignes avec

envoi_invitation_date, envoi_message_date, erreur_envoi, provider_id résolu, ne_plus_contacter posé sur ceux qui ont répondu entre-temps. Compteurs dans scripts/compteurs.json.

Procédure

  1. Vérifiez l'amont : qualifier-liste fait, dedoublonner --hubspot (ou --contre) fait,

emails vérifiés (couverture fiable au-dessus de 70 %), verifier-reponses passé sur les listes déjà contactées. Sinon, une étape manque : dites laquelle.

  1. Email. Dry-run d'abord :

python3 scripts/envoyer_lemlist.py --in --campagne "module GTM " --colonne-message icebreaker --dry-run Le script écarte exclus, ne_plus_contacter, emails vides, invalides, non vérifiés, catch-all (sauf --avec-catch-all), et affiche 3 leads avec leur message. Montrez-les, attendez le oui, relancez avec --confirmer : la campagne est créée si elle n'existe pas et les leads sont ajoutés (dédoublonnés par Lemlist). Vérifiez dans Lemlist que la séquence a ses étapes et ses expéditeurs, récapitulez (nombre de leads, expéditeur, première étape, cadence) et attendez un "oui, lance" explicite avant --lancer (ou python3 scripts/envoyer_lemlist.py --in --campagne-id --confirmer --lancer).

  1. LinkedIn (Unipile). Quota : python3 scripts/envoyer_linkedin.py quota. Puis :

python3 scripts/envoyer_linkedin.py --in --etape invitation --colonne-message note_invitation --max 20 Le script affiche 3 messages et s'arrête. Montrez-les, attendez le oui, relancez avec --confirmer. Séquence par défaut : invitation, 2 jours, message 1, 3 jours, message 2, en re-passant verifier-reponses entre chaque étape (le script exclut aussi lui-même les conversations où le prospect a répondu). python3 scripts/envoyer_linkedin.py --in --etape message --colonne-message message_1 --max 30 --confirmer

  1. LinkedIn via Lemlist (canal_linkedin: lemlist) : mêmes étapes que l'email, avec des étapes

LinkedIn dans la séquence ; les quotas sont ceux de Lemlist, alignés sur 05_Departements/Go-to-Market/GARDE-FOUS.md.

  1. Rendez : envoyés, écartés par raison, quota restant, lien vers le fichier de sortie et vers

la campagne, un seul next step : verifier-reponses dans 48 h.

Garde-fous

  • Jamais d'envoi sans validation explicite sur un échantillon de 3 messages affichés. Le script

LinkedIn refuse sans --confirmer ; côté Lemlist, launch_campaign n'est appelé qu'après un "oui, lance" écrit.

  • Invitations : 30 par jour, plafond dur dans le script (LIMITE_INVITATIONS_JOUR du .env ne

peut que baisser). Messages : 50 par jour par défaut, 100 au plus. Compteur local, bloquant, remis à zéro chaque jour.

  • Jamais de message à quelqu'un qui a répondu : exclusion automatique via les chats Unipile,

et ne_plus_contacter respecté partout.

  • Une ligne envoyée n'est jamais renvoyée (envoi__date). Délai 45 s plus un aléa entre

deux envois, arrêt sur 429.

  • Note d'invitation : 300 caractères au plus (LinkedIn en refuse au-delà, et 200 sur un compte

gratuit) ; pas d'envoi sur un email catch-all sans le dire ; pas de pièce jointe, pas de lien dans un premier message LinkedIn.

  • Aucun message généré à la volée par ce skill : il envoie ce que cold-email a écrit et que

l'utilisateur a validé.

Erreurs fréquentes

| Symptôme | Cause | Fix | |---|---|---| | rien a envoyer (quota du jour epuise) | 30 invitations déjà parties | reprendre demain, ou passer aux messages | | 422 Unipile sur provider_id | valeur qui n'est pas un id Unipile (URL brute) | laisser le script résoudre depuis linkedin_url | | provider_id introuvable | profil privé ou slug faux | corriger linkedin_url, ou enrichir-personne | | Lemlist : leads importés mais campagne vide | mauvais mapping de colonnes | utiliser le CSV de preparer_import_lemlist.py, colonnes Lemlist natives | | Lemlist : validate_campaign_readiness en échec | expéditeur absent ou variable {{...}} non définie | set_campaign_senders, vérifier les variables du template | | 429 en cours de run | LinkedIn ou Unipile freine | le script s'arrête ; relancer plus tard, les lignes envoyées sont marquées |

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.