Heroku hosted application that performs Notion actions (i.e., new task, new note) based on voice requests via IFTTT Webhooks and Google Assistant.
- Have a Notion account
- Have a Heroku account
- Have an IFTTT account (with Google Assistant service enabled)
Have Specific Notion Template as described in this blog postHave a table for Notes and/or a table for Tasks (can be the same table)- Your Notion Token
- URLs for the tables defined in 4.
Note: The required environment variables mentioned in the below steps are outlined in kevinjalbert/alfred-notion's section on finding your Notion Token and finding your Notion URLs.
- NOTION_TOKEN = your Notion Token
- NOTES_DATABASE_URL = the url to your notes database
- TASKS_DATABASE_URL = the url to your tasks database (can be the same)
- MAX_TITLE_LENGTH (optional) = the maximum length of the title before it gets truncated. If your title gets truncated, the full, untruncated title will first be added to the database row's page as a text block, so you won't lose any text. Defaults to 100 characters.
- Use above deploy button to create/launch application on Heroku
- Navigate to application settings page (i.e., https://dashboard.heroku.com/apps/your-notion-heroku/settings) and set required environment variables.
- Clone the repository via
git clone [email protected]:kevinjalbert/notion-heroku.git
heroku create
git push heroku master
- Set all required environment variables via
heroku config:set xxxx=yyyy
Click to view walkthrough (images)
This walkthrough demonstrates how to setup a IFTTT action to add a Notion Task.
The main difference is that the webhook URL is either /add_note
or /add_task
in Step 6.
ThI haven't updated the above screenshots from @kevinjalbert's original versions. While I've made sure you can still use the ?title=
parameter, you can also omit that if you send JSON in the request body.
If the JSON object is present, it will extract a "title"
from that, and anything in the "body"
property will be put into the database row's page. Any other properties you supply in this object will automatically map to other database properties if present, and if not return an error indicating which properties were not present.
This opens up opportunities to include information like the source of your note (e.g. Google Assistant, Email, etc) if you set up multiple IFTTT trigger sources, or to add any other contextual information you deem relevant.
{
"title": "<Row title>", // REQUIRED. The title of the database row you're creating
"type": "Note"|"Task", // Which of the databases you want it to go to
"url": "<url>", // The url of the database you want it to go to (overrides "type")
"body": "<text>" // Text block you want to create inside the row's page (Markdown supported)
}
๐ค Kevin Jalbert
- Twitter: @kevinjalbert
- Github: @kevinjalbert
Give a โญ๏ธ if this project helped you!
This README was generated with โค๏ธ by readme-md-generator