Перейти к основному содержимому

Вебхуки

Вебхуки позволяют получать HTTP-уведомления в реальном времени при возникновении событий в вашем арендаторе FeedbackPulse.


Настройка

Через дашборд

  1. Перейдите в Настройки > Интеграции
  2. Введите ваш URL вебхука
  3. Выберите, на какие события подписаться
  4. Необязательно задайте секрет для верификации HMAC-подписи
  5. Сохраните

Через API

PUT /api/v2/webhooks/config
{
"url": "https://your-app.com/webhooks/feedbackpulse",
"events": ["submission.created", "submission.status_changed"],
"secret": "your_shared_secret"
}

Payload вебхука

При возникновении события FeedbackPulse отправляет POST-запрос на ваш URL:

{
"event": "submission.created",
"timestamp": "2024-03-15T10:30:00Z",
"data": {
"id": 42,
"campaign_id": 1,
"star_rating": 5,
"text_feedback": "Love this product!",
"customer_name": "Jane Doe",
"status": "pending"
}
}

Заголовки

Content-Type: application/json
X-FeedbackPulse-Signature: sha256=abc123...
X-FeedbackPulse-Event: submission.created

Верификация подписи

Если вы задали секрет вебхука, проверьте подпись:

$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_FEEDBACKPULSE_SIGNATURE'];
$expected = 'sha256=' . hash_hmac('sha256', $payload, $secret);

if (!hash_equals($expected, $signature)) {
http_response_code(403);
exit('Invalid signature');
}

Поддерживаемые эндпоинты

FeedbackPulse автоматически определяет и форматирует payload для:

СервисПаттерн URLФормат
Slackhooks.slack.com/*Формат Slack Block Kit
Discorddiscord.com/api/webhooks/*Формат Discord embed
КастомныйЛюбой HTTPS URLЧистый JSON payload

Защита от SSRF

URL вебхуков валидируются для предотвращения Server-Side Request Forgery:

  • localhost, 127.0.0.1, 0.0.0.0 заблокированы
  • Диапазоны частных IP (10.x, 172.16-31.x, 192.168.x) заблокированы
  • Разрешены только публичные HTTPS URL

Логи вебхуков

Просматривайте историю доставки:

Через дашборд

Настройки > Интеграции > Логи вебхуков

Специальная страница Логи вебхуков также доступна по адресу /webhooks/logs, предоставляющая полную историю доставки с деталями ответов и параметрами фильтрации. Вы можете фильтровать по типу события, коду статуса и диапазону дат, а также просматривать полный payload запроса и тело ответа для каждой попытки доставки.

Просмотр логов вебхуков для администратора

Суперадминистраторы имеют доступ к просмотру логов вебхуков платформы по адресу /admin/webhook-logs. Это обеспечивает видимость доставки вебхуков по всем арендаторам, полезно для диагностики проблем интеграции и мониторинга работоспособности платформы.

Через API

GET /api/v2/webhooks/logs

Каждая запись лога показывает:

  • Тип события
  • URL
  • Код ответа
  • Отправленный payload
  • Тело ответа
  • Временную метку

Следующие шаги