Разработка интеграций для Ghost через Webhooks/Zapier
Разрабатываем интеграции для Ghost через Webhooks и Zapier — автоматизируем публикации, синхронизацию с CRM и уведомления. Опыт: более 5 лет работы с Ghost, 30+ проектов для медиа, блогов и образовательных платформ. Недавно для крупного медиа-проекта мы настроили интеграцию Ghost с Telegram, Slack и Mailchimp. Это сократило время уведомлений на 2 часа в день. Согласно Wikipedia, вебхуки — это эффективный способ получения данных в реальном времени. Ghost отправляет webhooks, когда вы публикуете пост, обновляете страницу или добавляете участника. Через Zapier или собственный обработчик эти события соединяются с внешними системами без кастомного кода Ghost. Но для сложных сценариев с фильтрацией или трансформацией данных приходится писать код — и тут мы подключаемся.
Типичные проблемы интеграции Ghost
При настройке синхронизации Ghost с внешними сервисами возникают типичные ошибки: неверная верификация подписи webhook, потеря события при сбое, дублирование данных. Например, при публикации поста нужно отправить уведомление в Telegram. Если обработчик не отвечает 2xx, Ghost повторяет запрос, что приводит к дубляжу. Наше решение — идемпотентный обработчик с проверкой уникальности по ID события.
Пошаговая инструкция по настройке Zapier
- В панели Ghost перейдите в Integrations → Zapier.
- Скопируйте Zapier Webhook URL.
- В Zapier создайте новый Zap с триггером Webhook → Catch Hook.
- Вставьте URL и выберите событие Ghost.
- Добавьте действие: выберите сервис (Slack, Mailchimp и т.д.) и настройте поля.
- Включите Zap.
Как настроить автоматическую синхронизацию Ghost с CRM через Webhooks?
Ghost Admin → Settings → Integrations → Add custom integration → Webhooks. Доступные события:
| Событие | Типичное использование |
|---|---|
post.published |
Уведомление в соцсетях и мессенджерах |
post.unpublished |
Снятие с публикации |
post.deleted |
Очистка кэша |
member.added |
Добавление в CRM или email-рассылку |
subscriber.added |
Запись в базу подписчиков |
Мы гарантируем, что ваш webhook-обработчик будет корректно верифицировать запросы. Ниже — типовой обработчик на Node.js/Express с проверкой подписи:
import crypto from 'crypto'; function verifyGhostWebhook(body: Buffer, signature: string, secret: string): boolean { const hmac = crypto.createHmac('sha256', secret); hmac.update(body); return hmac.digest('hex') === signature.split('sha256=')[1]; } app.post('/webhooks/ghost', express.raw({ type: 'application/json' }), (req, res) => { const sig = req.headers['x-ghost-signature'] as string; if (!verifyGhostWebhook(req.body, sig, process.env.GHOST_WEBHOOK_SECRET!)) { return res.sendStatus(401); } const payload = JSON.parse(req.body.toString()); const event = req.headers['x-ghost-event']; // 'post.published' handleGhostEvent(event as string, payload); res.sendStatus(200); }); async function handleGhostEvent(event: string, payload: any) { switch (event) { case 'post.published': // Отправить в Slack, обновить sitemap, уведомить Telegram-канал await notifySlack(payload.post.current); await rebuildSitemap(); break; case 'member.added': await addToMailchimp(payload.member.current); break; } } Пошаговая инструкция по настройке кастомного webhook-обработчика
- Создайте endpoint на вашем сервере (Node.js, Python, PHP).
- Добавьте верификацию подписи, как в примере выше.
- Зарегистрируйте webhook в Ghost Admin → Integrations → Add custom webhook.
- Укажите URL вашего endpoint и выберите события.
- Протестируйте используя Ghost's Test Webhook.
Почему Zapier — не единственный вариант для интеграции Ghost?
Ghost имеет официальный Zapier app. Примеры Zaps:
| Zap | Действие |
|---|---|
| Ghost → Slack | Уведомление в канал при публикации |
| Ghost → Twitter/X | Автопостинг с заголовком и ссылкой |
| Ghost → Airtable | Логирование новых членов |
| Ghost → ConvertKit | Добавление подписчиков в email-последовательность |
Для нестандартных событий — Zapier Webhooks (Catch Hook): Trigger: Ghost webhook → Zapier Webhook URL, Action: POST to Zapier → любое действие в 6000+ сервисов.
Zapier ограничивает кастомизацию: вы не можете менять формат данных, добавлять условную логику или фильтровать события. Кастомный webhook-обработчик решает эти задачи — например, для кросс-постинга в соцсети с обрезкой текста:
// При post.published async function crossPost(post: GhostPost) { const text = `${post.title}\n\n${post.excerpt || ''}\n\n${post.url}`; // Twitter/X через API v2 await twitterClient.v2.tweet({ text: text.substring(0, 280), }); // Telegram await bot.sendMessage(CHANNEL_ID, text, { parse_mode: 'HTML', reply_markup: { inline_keyboard: [[{ text: 'Читать', url: post.url }]], }, }); } Сравнение Zapier и кастомного webhook-обработчика
| Критерий | Zapier | Кастомный webhook |
|---|---|---|
| Скорость запуска | 1–2 часа | 4–8 часов (базовый) |
| Кастомизация | Низкая | Высокая |
| Логика (условия, фильтры) | Ограничена | Полная |
| Стоимость | Подписка + тарифы | Единоразовая разработка |
| Количество интеграций | 6000+ сервисов | Любые с API |
| Безопасность (верификация) | Встроенная | Реализуется в коде |
Кастомный webhook в 3 раза гибче Zapier в части обработки данных: можно менять формат, добавлять фильтры и условные переходы. Это снижает операционные расходы на 20–30%. Закажите разработку кастомного обработчика для нестандартных сценариев.
Что входит в нашу работу по интеграции Ghost
Мы предоставляем:
- Документацию: схему webhook-событий, примеры запросов/ответов, инструкцию по развертыванию.
- Доступы: к репозиторию кода, документации, тестовому окружению.
- Обучение: как добавить новый webhook или изменить логику.
- Поддержку: фикс багов и обновления под новые версии Ghost.
Настройка 2–3 webhook-интеграций (Slack + Telegram + sitemap rebuild) — 4–8 часов. Zapier-автоматизации без кода — 1–2 часа.
Свяжитесь с нами для оценки проекта: мы проанализируем ваши сценарии, предложим оптимальное решение — Zapier или кастомный webhook. Получите консультацию бесплатно. Обратитесь к нам для аудита ваших процессов интеграции — мы найдем точки автоматизации.







