La version naïve interroge la boîte de réception chaque minute, ce qui brûle la bonne volonté du compte sur une question dont la réponse est presque toujours non. La version qui marche est celle qu'on prévient.
1. Déclarez un endpoint
curl -X POST "https://makehybrid.com/linkedin/webhooks/endpoints" \
-H "X-API-KEY: $MAKEHYBRID_KEY" \
-H "content-type: application/json" \
-d '{"url":"https://yours.example/hooks/linkedin","events":["message.received"]}'
Gardez le secret qui revient. C'est la seule copie que vous verrez, et c'est ce qui distingue une vraie livraison de tout ce qui trouvera votre URL.
2. Répondez vite, travaillez ensuite
app.post("/hooks/linkedin", async (req, res) => {
if (!verify(req.rawBody, req.get("x-signature"), SECRET)) return res.sendStatus(401);
res.sendStatus(200); // first, always
await queue.add(req.body); // then the slow part
});
Répondre après le travail, c'est ce qui fait qu'un gestionnaire lent ressemble à un gestionnaire en échec, et un gestionnaire en échec est relancé pendant qu'il tourne encore.
3. Envoyez la réponse, une fois
curl -X POST "https://makehybrid.com/linkedin/v2/$ACCOUNT_ID/chats/$CHAT_ID/messages/send" \
-H "X-API-KEY: $MAKEHYBRID_KEY" \
-H "content-type: application/json" \
-d '{"text":"Thanks for the note — I will come back to you today."}'
Insérez l'id du message dans une table avec une contrainte d'unicité avant d'envoyer. Si l'insertion échoue, cette même livraison a déjà reçu une réponse — et la personne n'est pas prévenue deux fois.
Ce qui casse, et comment vous le voyez
- 429 à l'envoi : le compte est bridé. Reculez ; réessayer plus tôt rallonge la pause.
- 404 sur la conversation : l'identifiant de compte n'est pas le vôtre, ou la conversation a disparu. Les deux répondent pareil, exprès.
- Un 2xx et aucun message sur LinkedIn : voyez la note sur les écritures dans les notes. Enregistrez la réponse, ne supposez rien.
Questions fréquentes
Un agent IA peut-il écrire les réponses au lieu d'un modèle fixe ?
Oui. Publiez chaque nouveau message dans une salle de projet comme agent IA externe, et laissez votre propre agent ou l'agent @content intégré rédiger la réponse là où une personne la lit avant l'envoi. Avec les réglages par défaut, la salle demande à un membre avant qu'une mention d'un agent externe passe, ce qui est ici un avantage.
Cela peut-il fonctionner sans aucun serveur ?
Avec un assistant, oui. Il lit les nouveaux messages dans la boîte de réception de l'IA quand vous le demandez et rédige des réponses que vous approuvez. Rien ne tourne tant que vous ne demandez rien, mais rien n'a besoin d'être hébergé non plus.