Notion
Use a Notion database as the workspace's issue tracker, or add Notion pages to the docs library. Limn only reads Notion; it never changes a page.
On this page
Limn uses Notion in two separate ways. A Notion database can be the workspace’s issue tracker, where each page is a ticket. Notion pages can be added to the docs library. Each use has its own token in Settings, and you can use the same Notion integration for both. Either way, Limn only reads.
#Create a Notion integration
- Go to notion.so/my-integrations and create an internal integration for your Notion workspace.
- Give it the capabilities Read content, Read comments and Read user information. Limn needs no insert or update capability.
- Copy its token. A token starts with
ntn_(orsecret_for an older one). - In Notion, share each database or page you want Limn to read with the integration: the page’s ••• menu → Connections. Child pages are shared with it too.
#Notion as an issue tracker
What you need
- One database that holds your tickets, shared with the integration.
- A Unique ID property with a prefix, so tickets have keys like
ENG-123. Limn finds a ticket by that key in the pull request title or branch. A database without a prefixed Unique ID cannot be used. - If you plan in sprints: a Sprints database (shared too), a select property or a date range.
Set it up
- Open Settings → Integrations. Under Issue tracker, set Provider to Notion.
- Paste the Database URL: the link of the database that holds your tickets. Save.
- Under Notion as an issue tracker, paste the Integration token and save.
- Press Read database. Limn reads the database’s properties and suggests a mapping.
- Check each property in the mapping, then save. Until you do, the section says “Not mapped yet. Nothing is read until it is.”
Tasks: keys look like ENG-123 (ID).
| Mapping | What it is for |
|---|---|
| Status | A status property (its To-do, In progress and Complete groups), or a select where you say which option is which. |
| Assignee | A people property. Limn uses the first person. |
| Sprint | A relation to a Sprints database (with its date property), a select with the current option, or a date range. None: This Sprint shows open tickets edited lately. |
| Type | A select, used for the issue type. |
| Acceptance criteria | A text property, or From the page: a task list or an "Acceptance criteria" heading in the page body. |
| Blocked by | A relation to the same database, for the arrows on This Sprint. |
What Limn reads
- For each ticket a pull request names: its properties as mapped, the page body (as text), its blockers and its comments.
- For This Sprint: the pages in the current sprint.
Tickets are read when a pull request arrives and about every 30 minutes while it is open; the sprint about every 20 minutes while This Sprint is in use. Notion allows about three requests a second per integration, and Limn spaces its calls to stay under that.
#Notion pages in Docs
- Open Settings → Docs. Under Notion, paste the Integration token, save, and press Test connection.
- Share the pages you want with the integration in Notion.
- On the Docs page, press +, choose Notion, and paste a page address. A top-level page adds the whole wiki; any other page adds it and every page below it.
Limn checks the pages for changes about every three hours while the library is in use, and reads only the pages that changed. See Add documents.
#What Limn writes
Nothing. Limn only reads Notion. It never changes a page, a property or a comment, and the status and the assignee in the story view are shown, not changed.
#Troubleshooting
| What you see | What to do |
|---|---|
| A page or ticket is not found | Share it with the integration (••• → Connections). |
| The database is refused at Read database | Add a Unique ID property with a prefix to the database. |
| No comments show | Give the integration the Read comments capability. |
| The token is refused | Paste the integration’s token, starting ntn_ or secret_, not a page link. |
Where tokens are kept: Data and storage.