Telegram and Notion integration: bot notes go straight to a database

The Telegram and Notion integration in nana800 saves every message to your bot as a row in a Notion database, with a title, author, date and the full text on the page. You need a bot token from @BotFather and an internal Notion integration token with access to the database, no coding required. A message to the bot costs as much as a basic block, a Notion write twice as much.

Build it in the builder

What you can automate

  • Save ideas, tasks and links from Telegram to a Notion database, one row per message
  • Keep a journal: the append_blocks operation adds every message as a paragraph at the end of one page
  • Archive the posts of your channel in Notion: a bot that is a channel admin receives every new post
  • Collect customer requests in a database with Author, Date and Status columns and work on them in Notion
  • Reply in Telegram with a link to the new row: the Notion block returns its address

How to set it up

  1. 1

    Create a Notion integration

    Open the Notion integrations page (the hint of the token field links to it), press New integration, choose the Internal type and your workspace. On the Configuration tab copy the Internal Integration Secret, which starts with ntn_ or secret_. Make sure Read, Update and Insert content are enabled.

  2. 2

    Give the integration access

    Open the database in Notion, press the three dots at the top right, choose Connections and add your integration. Without it Notion answers object_not_found even though the database exists. Access to a page also covers its nested pages.

  3. 3

    Add the incoming message trigger

    Create a scheme, add the Telegram message from user to bot trigger and paste the bot token from @BotFather. Choose message for notes, or channel_post for a channel archive, in which case the bot must be a channel admin.

  4. 4

    Set up the Notion block

    Add the Notion block, paste the token, choose create_page and paste the full database link. Put the message text from the trigger into the page title. In the simple properties list write a column name on the left and a value on the right, for example Author with the username and Date with the date from the trigger.

  5. 5

    Test it with the button trigger

    Connect the button trigger to the Notion block and temporarily type a test title instead of the trigger data. Turn the scheme on and press the button: a new row appears in the database. If it does not, error_message of the Notion block shows why.

  6. 6

    Keep the scheme on

    Put the trigger data back and keep the scheme on. If you like, add the Telegram message send block with chat_id from the trigger and record_url from the Notion block, so the bot replies with a link. While the scheme is on, it costs $0.0042 per hour.

Pricing

A run of a Telegram block costs $0.001, a run of a Notion block costs $0.002. Every month the balance is topped up to $3.50 for free, an enabled scheme costs $0.0042 per hour.

Services in this connection

  • Telegram

    Build a Telegram bot without code: reply to messages, add buttons, send leads and alerts to a chat, group or channel. Free balance every month, no card needed.

  • Notion

    Connect Notion without code: leads and notes go into a database, rows are found with a filter and text is added to a page. Free balance every month, no card needed.

Frequently asked questions

One note is the trigger at the basic block price ($1 per 1,000 runs) plus the Notion write at twice that price. A bot reply with a link adds one more basic run. An enabled scheme costs $0.0042 per hour, and your balance is topped up to $3.50 for free every month. A scheme kept on around the clock spends most of that on hours.

Create an Internal integration on the Notion integrations page and copy the Internal Integration Secret, which starts with ntn_ or secret_. Then open the database, press the three dots and add the integration under Connections.

Either the integration has no access to the database or the ID is wrong. Add the integration under Connections of the database. If the database sits inside a page, press the three dots of the database itself and copy its link.

The block reads the column types itself. Text and links go in as is, select and status take the option name, multi-select takes names separated by commas, a date looks like 2026-09-15, and a checkbox takes yes or no. Long text is split into parts the way Notion requires.

Yes, with the append_blocks operation: choose the page and put the message into the page text. Every non-empty line becomes a paragraph, and one run can add up to 100 paragraphs and blocks.

Notion allows about 3 requests per second on average. If it asks to wait, the block waits and retries by itself. Creating a page and appending text are not retried after a network failure, so you do not get duplicates.

Build your first scheme for free

Sign-up is free and needs no card. Every month the balance is topped up to $3.50 for free, enough for about 3,500 runs of basic blocks.

Build it in the builder