Skip to main content

Integrating Notion

1. Connecting n8n to Notion​

I created a dedicated internal Notion integration for n8n and gave it only the capabilities required for this workflow.

For this MVP, the integration needs to be able to:

  • read the database information required by n8n;
  • insert new content into my Kanban.

I stored the integration secret in an n8n Notion credential rather than directly in the workflow.

I then explicitly shared my existing Kanban with the integration. This is important because possessing a valid Notion integration token does not automatically mean that the integration can access every page in my workspace.

The n8n credential test completed successfully and my Kanban appeared in the available databases.

tip

I did not create a new Notion database for the automation. I connected n8n to my existing Kanban and let n8n discover its real properties before configuring the mapping.

2. Creating the Notion task​

I added a Notion node after Extract Task.

The important configuration is conceptually:

Resource: Database Page
Operation: Create
Database: my existing Kanban

Once I selected the Kanban, n8n loaded its existing properties, including fields such as the task name, description, due date and swimlane.

For the MVP, I intentionally mapped only the minimum required field: the task name.

The Notion title property receives:

{{ $json.taskTitle }}

I left the other Kanban properties untouched for now.

This means:

/task Buy coffee

creates a new Kanban card whose name is:

Buy coffee

No AI interpretation, due-date extraction or automatic categorization is involved yet.

3. Sending the confirmation back to Telegram​

Finally, I added a Telegram node after the successful Notion creation.

The destination chat ID comes from the original Telegram Trigger event.

Conceptually, the confirmation uses:

message.chat.id

from the initial Telegram message and sends a response such as:

Task created: Buy coffee

This closes the loop: I immediately know that the command reached n8n and that the Notion creation step completed.

Final workflow​

The finished MVP is intentionally small:

Each node has one clear responsibility:

NodeResponsibility
Telegram TriggerReceive Telegram events
Verify Telegram UserReject unauthorized users
Route CommandSelect the appropriate command flow
Extract TaskConvert /task ... into a clean task title
Create Notion TaskAdd the task to my existing Kanban
Telegram ConfirmationConfirm successful creation

MVP acceptance test​

The final end-to-end scenario is now working:

1. I send: /task Buy coffee
2. Telegram sends the event to n8n over HTTPS
3. n8n verifies my Telegram user ID
4. the Switch recognizes /task
5. n8n extracts "Buy coffee"
6. n8n creates the task in my Notion Kanban
7. the bot confirms the creation in Telegram

This completes the MVP.

What I am deliberately not adding yet​

I am stopping here rather than immediately turning a working MVP into an infrastructure project.

The following belong to later iterations:

  • natural-language understanding with an LLM;
  • due-date extraction;
  • additional Telegram commands;
  • richer Notion property mapping;
  • better unsupported-command responses;
  • error handling and retries;
  • monitoring and centralized logs;
  • backup strategy;
  • CI/CD;
  • infrastructure hardening and industrialization.

The important milestone is simpler: I now have a real, end-to-end personal automation running from Telegram to n8n to Notion and back to Telegram.