Наивная версия опрашивает входящие каждую минуту и тратит добрую волю аккаунта на вопрос, ответ на который почти всегда «нет». Версия, которая работает, получает сообщение сама.
1. Зарегистрируйте точку приёма
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"]}'
Сохраните секрет, который вернулся. Это единственная копия, которую вы увидите, и именно он отличает настоящую доставку от всего прочего, что найдёт ваш адрес.
2. Ответьте быстро, работайте потом
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
});
Ответ после работы — это то, из-за чего медленный обработчик выглядит провалившимся, а провалившийся повторяют, пока он ещё выполняется.
3. Отправьте ответ, один раз
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."}'
Вставьте идентификатор сообщения в таблицу с ограничением уникальности до отправки. Если вставка не прошла, на ту же доставку уже ответили — и человеку не напишут дважды.
Что ломается и как вы это заметите
- 429 на отправке: аккаунт придерживают. Отступите; повторить раньше — значит продлить паузу.
- 404 на диалоге: идентификатор аккаунта не ваш либо диалога больше нет. Оба отвечают одинаково нарочно.
- 2xx и никакого сообщения в LinkedIn: смотрите заметку о записях в заметках. Запишите ответ, не предполагайте.
Частые вопросы
Может ли ИИ-агент писать ответы вместо фиксированного шаблона?
Да. Публикуйте каждое новое сообщение в проектную комнату как внешний ИИ-агент и пусть ваш собственный агент или встроенный @content составит ответ там, где человек прочтёт его до отправки. При настройках по умолчанию комната спрашивает участника, прежде чем пропустить упоминание от внешнего агента, и здесь это достоинство.
Можно ли обойтись совсем без сервера?
С ассистентом — да. Он читает новые сообщения из входящих вашего ИИ, когда вы просите, и пишет ответы, которые вы одобряете. Ничего не работает, пока вы не попросите, но и размещать ничего не нужно.