Send AI-Powered Weekly Project Summaries from Linear to Slack with n8n
The Hidden Cost of Manual Project Reporting
Every week, project managers and team leads face the same repetitive task: compiling status reports. You dig through tickets, summarize progress, and format updates to keep stakeholders informed. This manual process is not only time-consuming but also prone to inconsistency and takes you away from strategic work.
What if you could reclaim that time and deliver perfect, data-driven summaries on schedule, every single time? By connecting your project management tool to your communication platform with an automation layer, you can build a reliable, hands-off reporting system.
This guide will show you how to build a practical n8n workflow that connects Linear, OpenAI, and Slack. You'll create an automated reporter that fetches completed and in-progress tasks, uses AI to write a clean summary, and delivers it to your team's Slack channel automatically.
Why Automate Project Status Reporting?
Automating this process provides immediate, tangible benefits:
- Save Valuable Time: Eliminate hours of manual data collection and report writing each week.
- Ensure Consistency: Deliver reports in the same format and at the same time, every cycle.
- Improve Communication: Keep all stakeholders, from your team to leadership, effortlessly informed.
- Reduce Human Error: Base reports directly on project data, removing the risk of missed updates or inaccuracies.
Prerequisites: What You'll Need
Before you start, make sure you have access to the following services and have the necessary credentials ready:
- n8n instance: A self-hosted or n8n Cloud account.
- Linear account: With API access to fetch issue data. You will need a Personal API Key from your Linear settings.
- OpenAI account: With API access and credits. You will need an API key from your OpenAI dashboard.
- Slack workspace: With permissions to add integrations and post messages. You'll need to create a Slack App or use existing credentials.
Example n8n Workflow: Building Your Automated Reporter
This workflow runs on a schedule, fetches recent updates from a Linear project, summarizes them using AI, and posts the result in Slack. Let's build it step-by-step.
Step 1: Trigger the Workflow on a Schedule
Your workflow needs a starting point. Since this is a weekly report, the Schedule node is the perfect trigger.
-
Add a Schedule node to your n8n canvas.
-
Set the Trigger Interval to
Weekly. -
Choose the day and time you want the report to run, for example, every Friday at 4:00 PM.
Step 2: Fetch Recent Project Updates from Linear
Next, you need to pull the raw data for your report. The Linear node allows you to find issues based on specific criteria.
-
Add a Linear node and connect it to the Schedule node.
-
Create or select your Linear credentials.
-
Set the Resource to
Issueand the Operation toFind. -
In the Filters section, add rules to get relevant issues. A good starting point is to filter for issues updated in the last seven days:
-
Add a filter:
updatedAt>Date & Time -
In the Date & Time field, use an n8n expression to get the date from one week ago:
{{ $now.minus({ weeks: 1 }) }}
- Add another filter to specify the team or project you want to report on, for example:
team.name=Engineering.
This will return a list of all issues updated within the last week for the specified team.
Step 3: Prepare Data for the AI Summary
APIs return a lot of data. Before sending it to OpenAI, it's best to format it into a clean, simple text block. The Code node is ideal for this.
-
Add a Code node and connect it to the Linear node.
-
Use a simple JavaScript snippet to loop through the issues from Linear and format them into a readable list. This isolates the key information for the AI.
javascript const items = $input.all(); let reportText = '';
for (const item of items) {
const issue = item.json;
reportText += - Title: ${issue.title}, Status: ${issue.state.name}, Assignee: ${issue.assignee ? issue.assignee.name : 'Unassigned'}\n;
}
return [{ json: { report: reportText } }];
This script creates a single text string containing the title, status, and assignee for each issue, which is perfect input for our next step.
Step 4: Generate the Summary with OpenAI
Now for the AI magic. Use the OpenAI node to transform your raw list of updates into a polished, human-readable summary.
-
Add an OpenAI node and connect it to the Code node.
-
Select your OpenAI credentials.
-
Set the Model to a capable version like
gpt-4oorgpt-3.5-turbo. -
In the Prompt field, write instructions for the AI. Use the output from the previous step as a variable.
Here is a sample prompt:
`Act as a project manager. Based on the following list of tasks from our project tracker, write a brief weekly status summary for stakeholders. Organize the summary into two sections: 'Completed This Week' and 'In Progress'. Keep the tone professional and concise.
Task List: {{ $json.report }}`
This prompt tells the AI its role, the desired format, and provides the data it needs to generate the report.
Step 5: Post the Summary to a Slack Channel
Finally, deliver the report to your team. The Slack node makes this easy.
-
Add a Slack node and connect it to the OpenAI node.
-
Select your Slack credentials.
-
Set the Channel to the name of the channel where you want to post updates, such as
#project-updates. -
In the Text field, reference the AI-generated summary from the OpenAI node. You can add some surrounding text for context.
`Weekly Project Summary for Engineering
{{ $json.choices[0].message.content }}`
Activate your workflow, and you're done! Your automated project reporter will now run every week without any manual intervention.
Customizing and Enhancing Your Workflow
This workflow is a powerful starting point. Here are a few ways to enhance it:
- Add a Human-in-the-Loop: Instead of posting directly to a public channel, have the Slack node send the AI-generated draft to you as a direct message. You can then review it before sharing it with the wider team.
- Report on Multiple Projects: Use a
Split in Batchesnode to run the workflow for several Linear teams or projects at once, generating a separate report for each. - Use a Different Destination: Not a Slack user? Simply replace the Slack node with an Email or Microsoft Teams node to send the report where your team works.
- Improve Error Handling: Add logic to handle cases where the Linear API might be down or no updates are found. You can configure the workflow's error settings to send an alert if it fails.
From Manual Task to Automated Process
You've successfully turned a repetitive administrative task into a fully automated, intelligent workflow. By connecting your tools with n8n, you not only save time but also create more reliable and consistent communication channels for your team.
Use this template as a foundation. Adapt it to your specific project management tools, reporting needs, and team structure to unlock even more value from automation.
Enjoyed this article?
Share it with others who might find it useful