session.completed event fires. It uses a Notion Internal Integration Token — no OAuth flow.
Setup
Create a Notion integration
Go to notion.so/my-integrations and click New integration. Give it a name, select your workspace, and copy the Internal Integration Token.
Share your database with the integration
Open the Notion database you want responses to go into. Click Share (top right), then Invite and search for your integration name. Grant it Can edit access.
Find your Database ID
Open the database as a full page in your browser. The URL looks like
https://www.notion.so/your-workspace/DATABASE_ID?v=.... Copy the 32-character ID.Add the integration in Feedal
Go to Integrations → New integration → Notion. Enter your API token and Database ID.
Configuration
| Field | Required | Description |
|---|---|---|
| API Token | Yes | Your Notion Internal Integration Token |
| Database ID | Yes | The 32-character ID from the database URL |
| Include answers | — | Add one property per question answer |
Page format
Each new Notion page created in the database contains:| Property | Value |
|---|---|
| Session ID | Full UUID |
| Form | Form title |
| Submitted at | ISO 8601 datetime |
| Duration (s) | Number |
| Score | Number |
| (one property per question) | Answer value |
Create your database properties in Notion before enabling the integration.
Property names should match what Feedal sends. Unmatched properties are
ignored by Notion.
Next steps
Airtable
Create Airtable records instead.
How integrations work
Event model, delivery log, and retry logic.