Automate Jira Tasks from Meeting Notes with AI (Notion + Jira MCP Recipe)
π³ MCP Recipe
- What you'll build: An AI workflow that reads meeting notes from Notion and creates Jira tasks automatically
- MCP servers used: Notion MCP, Atlassian MCP (Jira)
- Time to complete: 60-90 minutes
- Difficulty: Intermediate
How many times have you left a meeting with action items, only to forget to create Jira tickets? Or spent 30 minutes manually copying tasks from meeting notes into Jira?
This recipe solves that problem. You'll build an AI assistant that:
- Reads meeting notes from your Notion workspace
- Identifies action items, decisions, and follow-ups
- Automatically creates Jira tickets with proper assignees, due dates, and descriptions
- Links tickets back to the original meeting notes
By the end, you'll save hours every week on manual task creation.
What You'll Build
Here's the complete workflow:
Meeting notes stored in Notion
Extracts action items
Identifies tasks, owners, priorities
Tickets automatically created
Example Transformation
| Input (Notion Meeting Notes) | Output (Jira Tickets Created) |
|---|---|
| "John will update the API documentation by Friday" | Ticket: "Update API Documentation" Assignee: John Due: Friday Priority: Medium |
| "We need to fix the login bug - Sarah to investigate" | Ticket: "Fix Login Bug" Assignee: Sarah Type: Bug Priority: High |
| "Review the new design mockups before next sprint" | Ticket: "Review Design Mockups" Type: Task Due: Before next sprint |
Prerequisites
With meeting notes pages
Atlassian Cloud or Server
Notion integration + Jira API token
Claude Desktop or Cursor
Step 1: Set Up Notion MCP Server
Notion MCP is a hosted server, so no local installation needed. You can connect via OAuth through the Notion app or directly via your MCP client.
Option A: Connect via Notion App (Easiest)
- Open Notion app β Settings
- Go to Connections β Notion MCP
- Choose your AI tool (Claude Desktop or Cursor)
- Complete the OAuth flow to authorize access
Option B: Connect via MCP Client Config
For Claude Desktop, add to your config file:
{
"mcpServers": {
"notion": {
"url": "https://mcp.notion.com/mcp"
}
}
}
For Cursor IDE, use Settings β Tools & MCP:
| Field | Value |
|---|---|
| Name | notion |
| Type | streamableHttp |
| URL | https://mcp.notion.com/mcp |
Verify Notion Connection
After restarting your AI client, test the connection:
What Notion tools do you have access to?
You should see tools like:
notion_searchβ Search pages and databasesnotion_read_pageβ Read page contentnotion_create_pageβ Create new pagesnotion_update_pageβ Update existing pagesnotion_query_databaseβ Query Notion databases
Step 2: Set Up Atlassian MCP Server (Jira)
The Atlassian MCP Server provides Jira integration. It's a local server that you need to run.
Installation
Install using uvx (recommended):
# Install uv if needed
curl -LsSf https://astral.sh/uv/install.sh | sh
# Run the Atlassian MCP server
uvx mcp-atlassian
Get Your Jira Credentials
- Go to Atlassian Account Settings β Security β API Tokens
- Click "Create API token"
- Give it a name like "MCP Jira Integration"
- Copy the token (starts with
ATATT3xFfGF0...) - Note your Jira site URL (e.g.,
https://yourcompany.atlassian.net)
Configure Atlassian MCP
For Claude Desktop, add to your config:
{
"mcpServers": {
"atlassian": {
"command": "uvx",
"args": ["mcp-atlassian"],
"env": {
"JIRA_API_TOKEN": "ATATT3xFfGF0...",
"JIRA_SERVER_URL": "https://yourcompany.atlassian.net"
}
}
}
}
For Cursor IDE, add via Settings β Tools & MCP:
| Field | Value |
|---|---|
| Name | atlassian |
| Type | command |
| Command | uvx mcp-atlassian |
| Environment Variables | JIRA_API_TOKEN, JIRA_SERVER_URL |
Verify Jira Connection
Restart your AI client and test:
What Jira tools do you have access to?
You should see tools like:
jira_searchβ Search Jira issues using JQLjira_create_issueβ Create new Jira ticketsjira_update_issueβ Update existing issuesjira_get_issueβ Get issue detailsjira_add_commentβ Add comments to issuesjira_transition_issueβ Change issue status
β Checkpoint
If you can see both Notion and Jira tools, you're ready to automate task creation!
Step 3: Prepare Your Meeting Notes Format
For best results, structure your Notion meeting notes consistently. Here's a recommended format:
# Weekly Team Sync - January 13, 2026
## Attendees
- Alice (Product Manager)
- Bob (Developer)
- Charlie (Designer)
## Discussion
- Reviewed Q1 roadmap
- Discussed new feature priorities
- Addressed performance concerns
## Action Items
- [ ] Alice: Update product roadmap by EOW
- [ ] Bob: Fix login bug - investigate by Tuesday
- [ ] Charlie: Review design mockups before sprint planning
- [ ] Team: Schedule follow-up meeting next week
## Decisions
- Prioritize mobile app improvements
- Defer analytics dashboard to Q2
## Follow-ups
- Check in on login bug status on Wednesday
Tips for better extraction:
- Use clear section headers (Action Items, Decisions, Follow-ups)
- Include assignee names when possible
- Add due dates or timeframes
- Use checkboxes for tasks:
[ ] - Mention priorities if relevant
Step 4: Extract Action Items from Meeting Notes
Now let's have the AI read your meeting notes and extract action items. First, find your Notion page:
Search for meeting notes pages in my Notion workspace from the last week
Or if you know the page title:
Read the Notion page titled "Weekly Team Sync - January 13, 2026"
Once the AI has the page content, ask it to extract action items:
From the meeting notes you just read, extract all action items. For each action item, identify:
1. Task description
2. Assignee (if mentioned)
3. Due date or timeframe (if mentioned)
4. Priority level (if mentioned)
5. Related context from the meeting
Format the output as a structured list.
Example Output
The AI might return:
## Extracted Action Items
1. **Update Product Roadmap**
- Assignee: Alice
- Due: End of Week (EOW)
- Priority: Medium
- Context: Q1 roadmap review discussion
2. **Fix Login Bug**
- Assignee: Bob
- Due: Tuesday
- Priority: High
- Context: Performance concerns raised
3. **Review Design Mockups**
- Assignee: Charlie
- Due: Before sprint planning
- Priority: Medium
- Context: New feature priorities discussion
4. **Schedule Follow-up Meeting**
- Assignee: Team
- Due: Next week
- Priority: Low
- Context: General follow-up
Step 5: Create Jira Tickets from Action Items
Now have the AI create Jira tickets for each action item. Provide context about your Jira setup:
Create Jira tickets for each action item extracted above. Use these settings:
- Project: "ENG" (Engineering)
- Issue Type: "Task" (or "Bug" for bugs)
- Priority mapping:
- High β Highest
- Medium β High
- Low β Medium
- Default assignee: Use the assignee name from the action item, or leave unassigned if not specified
- Add a description that includes:
- The original action item text
- Context from the meeting
- Link to the Notion meeting notes page
For each ticket, include the Notion page URL in the description so we can trace back to the meeting.
Advanced: Custom Field Mapping
If your Jira has custom fields, you can specify them:
When creating Jira tickets:
- Set "Epic Link" to "Q1 Roadmap" for roadmap-related tasks
- Set "Sprint" to "Current Sprint" if due within sprint timeframe
- Add label "meeting-action-item" to all tickets
- Set "Story Points" to 3 for high priority, 2 for medium, 1 for low
Step 6: Complete Workflow Example
Here's a complete prompt that does everything in one go:
I have a meeting notes page in Notion titled "Sprint Planning - Jan 13".
Please:
1. Read the page content from Notion
2. Extract all action items, identifying:
- Task description
- Assignee
- Due date/timeframe
- Priority
- Related context
3. For each action item, create a Jira ticket in project "ENG" with:
- Appropriate issue type (Task, Bug, Story)
- Correct priority level
- Assignee if specified
- Description including context and link to Notion page
- Label "meeting-action-item"
4. After creating each ticket, provide a summary with:
- Ticket key (e.g., ENG-123)
- Title
- Assignee
- Status
Format the summary as a table for easy review.
Step 7: Automation Options
Option A: Manual Trigger (Current Setup)
Run the workflow manually after each meeting by asking the AI to process your meeting notes.
Option B: Scheduled Automation
Set up a scheduled job that:
- Queries Notion for new meeting notes (e.g., pages created today)
- Processes each page automatically
- Creates Jira tickets
- Sends a summary notification
You can use a service like Zapier, Make.com, or a custom script with cron.
Option C: Notion Database Trigger
If you store meeting notes in a Notion database:
Query the Notion database "Meeting Notes" for pages where:
- Status is "Ready for Processing"
- Created date is today
For each page found, extract action items and create Jira tickets.
After processing, update the Notion page status to "Processed".
Best Practices
| Practice | Why It Matters |
|---|---|
| Review before creating | AI can misinterpret contextβalways review extracted items |
| Use consistent formatting | Structured notes = better extraction accuracy |
| Include assignee names | Helps AI match names to Jira users |
| Add due dates explicitly | "By Friday" is clearer than "soon" |
| Link back to Notion | Makes it easy to find original context |
| Use labels/tags | Helps organize and filter tickets later |
Advanced: Smart Task Extraction
You can improve extraction accuracy with custom instructions:
When extracting action items from meeting notes:
1. Look for these patterns:
- "[Name] will [action]" β Assignee: Name
- "[Action] by [date]" β Due: date
- "Urgent" or "ASAP" β Priority: High
- "Nice to have" β Priority: Low
2. Ignore:
- General discussion points
- Decisions without actions
- Completed items (already checked off)
3. For ambiguous items:
- If no assignee mentioned, mark as "Unassigned"
- If no due date, set to "No due date"
- Default priority to "Medium" unless specified
4. Extract related context:
- What was discussed before the action item
- Why the action is needed
- Any dependencies mentioned
Troubleshooting
Notion MCP connection fails
Common issues:
- OAuth not completed β Re-authorize through Notion app
- Wrong workspace β Ensure you're connected to the correct Notion workspace
- Permissions β Check that the integration has access to the pages you need
- URL format β Verify the MCP URL is correct:
https://mcp.notion.com/mcp
Jira tickets not creating
Check:
- API token is valid and not expired
- Jira server URL is correct (include https://)
- User has permission to create issues in the project
- Project key exists (e.g., "ENG" not "Engineering")
- Issue type names match your Jira configuration
- Assignee names match Jira usernames exactly
AI extracts wrong information
Improve accuracy:
- Use clearer formatting in meeting notes
- Provide examples: "Extract action items like this example: [example]"
- Ask AI to show extracted items before creating tickets
- Correct mistakes: "That's wrong, the assignee is actually John, not Jane"
- Use structured sections in Notion (Action Items, Tasks, etc.)
Assignee names don't match Jira users
Solutions:
- Create a mapping: "When you see 'Alice' in notes, use Jira username 'alice.smith'"
- Use Jira usernames directly in meeting notes
- Leave tickets unassigned and assign manually
- Ask AI to search Jira users first: "Find Jira user matching 'Alice Smith'"
Real-World Use Cases
1. Daily Standup Notes
Automatically create tickets from blockers mentioned in standup:
Read today's standup notes from Notion and create Jira tickets for any blockers mentioned.
2. Client Meeting Follow-ups
Convert client requests into actionable tickets:
Extract all client requests from the meeting notes and create Jira tickets with label "client-request".
3. Retrospective Action Items
Turn retrospective improvements into tracked tasks:
Find action items from the latest retrospective and create tickets in the "Improvements" epic.
What You Built
Congratulations! You now have an automated workflow that:
- β Connects to Notion to read meeting notes
- β Extracts action items with assignees and due dates
- β Creates Jira tickets automatically
- β Links tickets back to original meeting notes
- β Handles priorities, labels, and custom fields
- β Can be automated or run on-demand
Next Steps
- Add Slack notifications: Get notified when tickets are created
- Create ticket templates: Standardize ticket formats for different meeting types
- Add validation: Review tickets before auto-creating in production
- Track metrics: Measure how many tickets come from meetings
- Expand to other sources: Process emails, Slack messages, or Google Docs
Related Recipes
- Build an AI GitHub PR Reviewer
- Build an AI Database Query Assistant
- How to Set Up MCP in Claude Desktop
Frequently Asked Questions
Can this work with other note-taking apps besides Notion?
What if the meeting notes are in a different language?
How accurate is the action item extraction?
Can I customize the Jira ticket format?
What happens if an action item is already a Jira ticket?
Can this work with Jira Server/Data Center?
JIRA_PAT environment variable instead of JIRA_API_TOKEN.Nikhil Tiwari
15+ years of experience in product development, AI enthusiast, and passionate about building innovative solutions that bridge the gap between technology and real-world applications. Specializes in creating developer tools and platforms that make complex technologies accessible to everyone.