Every Monday, writes a Notion page of the week's finished and in-progress Jira issues, counted by status and by person.
UsesJira
Notion
Write a weekly Jira progress page in Notion
Every Monday morning, this searches Jira for everything that reached a done status in the past week and everything still open that moved in the same week, and writes it up as one page in your Notion database. The page opens with a headline count, then a Completed and an Active section, each with a count per status and the newest issues listed with their keys, and ends with a line per person showing what they finished and what is still in progress.
Finished work is recognised by the group Jira files each status under, so a project whose last column is called Shipped or Closed is read correctly. Issues with nobody assigned are counted under 'Unassigned' rather than dropped. Up to 1,000 issues are counted each week; if more moved, the page says so at the top. A quiet week still gets a page saying nothing moved, so a missing page always means the run did not happen. Nothing in Jira is changed.
You need Jira and Notion connected, and the link to the Notion database the pages go into, shared with your Notion connection. Optionally, a Jira project key to cover one project instead of every project you can see.
notionDatabaseId to blank.Set notionDatabaseId to blank.notionTitleProperty to Name.Set notionTitleProperty to Name.jiraProjectKey to blank.Set jiraProjectKey to blank.lookbackDays to 7.Set lookbackDays to 7.maxIssues to 1000.Set maxIssues to 1000.highlightLimit to 15.Set highlightLimit to 15.notionDatabaseId and save it as databaseId.Extract the first match from notionDatabaseId and save it as databaseId.databaseId is emptyIf databaseId is emptyprojectFilter to blank.Set projectFilter to blank.jiraProjectKey isn't emptyIf jiraProjectKey isn't emptyprojectFilter to project = jiraProjectKey AND .Change projectFilter to project = jiraProjectKey AND .window to -lookbackDaysd.Set window to -lookbackDaysd.issues to an empty list.Set issues to an empty list.nextPage to blank.Set nextPage to blank.morePages to true.Set morePages to true.morePages is yes and the length of issues is less than maxIssues:While morePages is yes and the length of issues is less than maxIssues:window) OR (statusCategory != Done AND updated >= window)) ORDER BY updated DESC'. Save it as search.Find issues matching '@projectFilter((statusCategory = Done AND resolved >= window) OR (statusCategory != Done AND updated >= window)) ORDER BY updated DESC'. Save it as search.issues and search.issues into one list and save it as issues.Combine issues and search.issues into one list and save it as issues.search.next_page_token is empty or search.issues is emptyIf search.next_page_token is empty or search.issues is emptymorePages to false.Change morePages to false.nextPage to search.next_page_token.Change nextPage to search.next_page_token.weekEnding.Make today's date readable as “November 2, 2026” and save it as weekEnding.issues, weekEnding, lookbackDays, highlightLimit, and moreThanCounted and save it as overview.Run Python code on issues, weekEnding, lookbackDays, highlightLimit, and moreThanCounted and save it as overview.weekEnding' in databaseId. Save it as page.Create the page 'Weekly Jira overview — weekEnding' in databaseId. Save it as page.page.Show in the output: page.