A versão ingênua disso consulta a caixa de entrada a cada minuto, o que queima a boa vontade da conta numa pergunta cuja resposta é quase sempre não. A versão que funciona é a que é avisada.
1. Registre um 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"]}'
Guarde o segredo que volta. É a única cópia que você vai ver, e é o que distingue uma entrega real de qualquer outra coisa que encontre a sua URL.
2. Responda rápido, depois trabalhe
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
});
Responder depois do trabalho é o que faz um handler lento parecer um que falhou, e um que falhou é repetido enquanto ainda está rodando.
3. Mande a resposta, uma vez
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."}'
Insira o id da mensagem numa tabela com restrição de unicidade antes de enviar. Se a inserção falhar, aquela mesma entrega já recebeu resposta — e a pessoa não é avisada duas vezes.
O que quebra, e como você percebe
- 429 no envio: a conta está sendo limitada. Recue; repetir mais cedo estende o limite.
- 404 na conversa: o id de conta não é seu, ou a conversa sumiu. Os dois respondem igual de propósito.
- Um 2xx e nenhuma mensagem no LinkedIn: veja a nota sobre escritas nas notas. Registre a resposta, não suponha.
Perguntas frequentes
Um agente de IA pode escrever as respostas em vez de um modelo fixo?
Pode. Poste cada mensagem nova em uma sala de projeto como agente de IA externo e deixe o seu agente, ou o agente integrado @content, redigir a resposta onde uma pessoa a leia antes de ela ser enviada. Nas configurações padrão, a sala pergunta a um membro antes de deixar passar a menção de um agente externo, o que aqui é uma vantagem.
Isso funciona sem servidor nenhum?
Com um assistente, funciona. Ele lê as mensagens novas da caixa de entrada de IA quando você pede e redige respostas para você aprovar. Nada roda até você pedir, mas também nada precisa de hospedagem.