Интеграция форм с Notion для сбора данных
Notion Databases — удобное хранилище для команд, которые уже работают в Notion. Заявки с сайта автоматически появляются как страницы в базе данных Notion, со всеми свойствами и возможностью комментирования.
Notion API
class NotionService
{
private string $apiKey;
private string $databaseId;
public function createPage(array $data): array
{
$resp = Http::withHeaders([
'Authorization' => "Bearer {$this->apiKey}",
'Notion-Version' => '2022-06-28',
'Content-Type' => 'application/json',
])->post('https://api.notion.com/v1/pages', [
'parent' => ['database_id' => $this->databaseId],
'properties' => [
'Имя' => [
'title' => [['text' => ['content' => $data['name']]]]
],
'Email' => [
'email' => $data['email']
],
'Телефон' => [
'phone_number' => $data['phone'] ?? ''
],
'Статус' => [
'select' => ['name' => 'Новый']
],
'Дата заявки' => [
'date' => ['start' => now()->toIso8601String()]
],
],
'children' => [
[
'object' => 'block',
'type' => 'paragraph',
'paragraph' => [
'rich_text' => [[
'type' => 'text',
'text' => ['content' => $data['message'] ?? '']
]]
]
]
]
]);
return $resp->json();
}
}
Настройка Notion Integration
- Создать Integration на
https://www.notion.so/my-integrations - Скопировать Internal Integration Token
- В базе данных Notion: Settings → Connections → добавить интеграцию
- Скопировать Database ID из URL базы данных
Ограничения
- Notion API имеет rate limit: 3 запроса в секунду
- При высоком трафике — очередь с Redis
- Notion не поддерживает webhooks для уведомлений (нужен polling или интеграция через Zapier/Make)
Время реализации: 1–2 рабочих дня.







