Skip to content
 
 

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Notion Tasks for Super Productivity

A small Super Productivity plugin that pulls this week's tasks from a Notion database into your Inbox, and keeps their completion in sync with Notion.

  • Import: every 5 minutes, pages whose Date falls in the current week (Monday to Sunday) and whose Completed checkbox is unchecked are added to the Inbox. Each page is imported once.
  • Complete in Super Productivity: ticks Completed on the Notion page.
  • Complete in Notion: marks the task done in Super Productivity at the next poll.
  • Search: the Notion panel searches the whole database, so you can add older tasks by hand.

Nothing else is written to Notion. Titles are read from Notion; notes, dates, projects and tags are left alone.

It's built on Super Productivity's issue-provider plugin API, so Notion tasks behave like linked Jira or GitHub issues: they show a link to the page, and Super Productivity handles polling and duplicate detection.

Requirements

  • Super Productivity 19 or later, desktop app. The web version can't reach Notion's API because browsers block the request (CORS).
  • A Notion database with:
    • a title property (any name),
    • a date property (default name Date),
    • a checkbox property that marks a task done (default name Completed).

Property names are matched case-insensitively, and you can change them in the settings.

Installation

  1. Get the plugin ZIP, either from a release or by building it (see Development).
  2. In Super Productivity, open Settings → Plugins, upload the ZIP and enable Notion Tasks.

Setup

1. Notion

  1. Go to notion.so/profile/integrations and create an internal integration. Enable the Read content and Update content capabilities.
  2. Copy the Internal Integration Secret (starts with ntn_).
  3. Open your tasks database as a full page, then ••• → Connections and add the integration. For an inline database, add the connection on the page that contains it.
  4. Copy the page's URL. The plugin takes the database ID from it.

2. Super Productivity

  1. Open the Issue Provider Panel and add Notion Tasks.
  2. Fill in:
    • Notion integration token: the ntn_… secret
    • Database ID: the database URL, or just the 32-character ID before ?v=
    • Advanced Config (optional): the names of your done, date and title properties
  3. Set these, or nothing will be imported automatically:
    • Default project → Inbox
    • Auto add to backlog → on (enabled once a default project is chosen)
    • Polling mode → Always (otherwise it only polls while the Inbox is open)
  4. Click Test connection, then Save.

Imported tasks land in the Inbox backlog.

Good to know

  • A task is imported once. Completing and archiving it doesn't bring it back. Deleting it does: if the page still matches the filter, the next poll imports it again. Complete tasks instead of deleting them.
  • Tasks stay after their week. The filter only decides what's newly imported. If a task's date moves out of the week, the Super Productivity task isn't removed.
  • Removing and re-adding the provider starts fresh: this week's tasks are imported again.
  • Completion is the only change sent to Notion. Un-completing a task unchecks the box.

Troubleshooting

Test connection shows Notion's own reason for a failure. Common ones:

Message Fix
404 object_not_found Connect the integration to the database (••• → Connections) and use the ID of the database itself, not a page or linked view.
401 unauthorized The token is wrong or was revoked. Copy the secret again.
no checkbox property named "…" Set the done property's name under Advanced Config.
"…" is a status property, not a checkbox Only checkbox properties are supported as the done property.
Network error / timed out Temporary network or DNS trouble. The plugin retries automatically; restarting Super Productivity clears its cached DNS failures.

If tasks aren't imported but search works, check the default project, auto-add and polling mode settings above. Errors from import, search and completion are logged in the developer console (Ctrl+Shift+I) as [Notion Tasks] ….

Development

The plugin is plain JavaScript with no build step:

File Purpose
plugin.js The issue provider (PluginAPI.registerIssueProvider)
manifest.json Plugin metadata; version is used for the ZIP name
notion.svg Icon
package.ps1 Builds dist/notion-tasks-<version>.zip
REDESIGN.md Design, decisions, risks and verification results

Build the ZIP:

./package.ps1

Notion API version 2022-06-28 is pinned in plugin.js.

Credits

Forked from AlessioLovato/notion-sync-plugin by Alessio Lovato, and rewritten as a much smaller issue-provider plugin. MIT licensed (see LICENSE).

About

Notion task sync plugin for SuperProductivity (https://github.com/johannesjo/super-productivity)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages