Skip to main content

Granola to Cursor CRM Automation: Step-by-Step Implementation Guide

Overview

This guide provides detailed instructions for creating a Zapier automation that connects Granola (voice-first meeting notes) to Cursor Cloud Agent, enabling automatic CRM processing of meeting transcripts. When a note is added to a specific Granola folder, the automation triggers a Cursor Cloud Agent that processes the transcript and creates relationship files and transcript summaries in your GitHub repository.

Use Case

Voice-First CRM for Two-Person Conversations

This automation is designed for simple, digital two-person conversations captured in Granola. When a meeting ends and a note is added to your designated Granola folder, the system automatically:

  1. Extracts the transcript from Granola
  2. Launches a Cursor Cloud Agent with specific instructions
  3. Processes the transcript to identify participants
  4. Creates or updates relationship markdown files
  5. Creates detailed transcript summary files
  6. Commits changes to your GitHub repository

Prerequisites

Before beginning, ensure you have completed the following:

1. Cursor Account and Repository Authorization

  • What: Cursor account with Cloud Agent access and repository authorization
  • Note: The Zapier integration uses OAuth authentication, so you don't need a separate API key
  • Where: Cursor Settings → Cloud Agent
  • How:
    1. Ensure you have a Cursor account with Cloud Agent access
    2. In Cursor, go to Settings → Cloud Agent
    3. Find "Authorized Repositories" section
    4. Add your repository: <username>/<reponame> (or your repo)
    5. Grant necessary permissions (read/write access)
    6. Verify authorization appears in your list

2. Zapier Account

  • What: Free Zapier account (upgrade may be needed for complex workflows)
  • Where: zapier.com
  • How:
    1. Sign up for free account at zapier.com
    2. Complete email verification
    3. Note: Free tier allows 5 Zaps with 100 tasks/month
    4. If automation becomes complex, consider Starter plan ($19.99/month)

3. Granola Paid Version

  • What: Granola subscription with folder functionality
  • Where: Granola app settings
  • Why: Free version may not support folder-based triggers
  • How:
    1. Open Granola app
    2. Navigate to Settings → Subscription
    3. Upgrade to paid tier if needed
    4. Verify folder creation is available
    5. Create folder: "Process in Cursor" (or your preferred name)

Step-by-Step Implementation

Step 1: Set Up Granola Folder

  1. Open Granola app
  2. Create a new folder:
    • Name: Process in Cursor (or your preferred name)
    • Purpose: This folder will trigger the automation
  3. Verify folder appears in your Granola folder list
  4. Test: Add a test note to this folder to ensure it's working
  5. Important: Before moving notes to this folder, ensure the attendee is properly tagged/identified in Granola so the Zap can extract their name correctly

Step 2: Create Zapier Account and Connect Granola

  1. Log into Zapier at zapier.com
  2. Click "Create Zap" (top left)
  3. Set up Trigger:
    • Search for "Granola" in the trigger apps
    • Select "Granola" from results
    • Choose trigger: "Note Added to Folder" or "New Note in Folder"
    • Click "Continue"
  4. Connect Granola Account:
    • Click "Sign in to Granola"
    • Authorize Zapier to access your Granola account
    • Grant necessary permissions
    • Click "Yes, continue"
  5. Configure Trigger:
    • Select folder: Process in Cursor (or your folder name)
    • Click "Continue"
  6. Test Trigger:
    • Click "Test trigger"
    • Ensure it finds your test note
    • If successful, click "Continue"

Step 3: Add Cursor Cloud Agent Action

  1. Add Action:

    • Click "+" button after the trigger step
    • Search for "Cursor" in the action apps
    • Select "Cursor" from results
    • Choose action: "Launch Agent"
    • Click "Continue"
  2. Connect Cursor Account:

    • Click "Sign in to Cursor"
    • Authorize Zapier to access your Cursor account
    • Grant necessary permissions
    • Click "Yes, continue"
  3. Configure Cursor Agent Settings:

    Fill in the following fields:

    • Repository URL: https://github.com/<username>/<reponame> (or your repository)
    • Git Reference: main (or your default branch)
    • Target Auto Create PR: true (or false if you want direct commits)
    • Model: claude-4-sonnet (or your preferred model)
    • Prompt: Use the template below with Zapier field mappings
  4. Build the Prompt with Field Mappings:

    In the "Prompt" field, use Zapier's field mapping to insert Granola data:

    Please process this transcript between myself (@<your-name>.md) and {{Granola Attendee Name}} on {{Granola Date}}

    Add any new relationship md files that need to be created in the docs/relationships folder. Note the format by reading docs/relationships/README.md

    Add any new summary of transcript md files that need to be created in the docs/transcripts folder (shouldnt be raw transcript - but a super detail summary with a lot of key quotes) - prefixed with the date in YYYY-MM-DD format. Note the format by reading docs/transcripts/README.md

    let me know if you have any questions before proceeding

    Here is the transcript:

    {{Granola Transcript Content}}
  5. Map Granola Fields:

    • Click on the field mapping icons (or use the dropdown)
    • Map {{Granola Attendee Name}} to Granola's attendee/participant field
    • Map {{Granola Date}} to Granola's date field (ensure YYYY-MM-DD format)
    • Map {{Granola Transcript Content}} to Granola's note/transcript content field

Step 4: Configure Cursor Agent Prompt

The prompt sent to Cursor should be:

Please process this transcript between myself (@your-name.md) and [ATTENDEE_NAME] on [DATE]

Add any new relationship md files that need to be created in the docs/relationships folder. Note the format by reading docs/relationships/README.md

Add any new summary of transcript md files that need to be created in the docs/transcripts folder (shouldnt be raw transcript - but a super detail summary with a lot of key quotes) - prefixed with the date in YYYY-MM-DD format. Note the format by reading docs/transcripts/README.md

let me know if you have any questions before proceeding

Here is the transcript:

[TRANSCRIPT_CONTENT]

Key Variables to Map:

  • [ATTENDEE_NAME]: Extract from Granola note metadata
  • [DATE]: Format as YYYY-MM-DD from Granola note date
  • [TRANSCRIPT_CONTENT]: Full transcript text from Granola note

Step 5: Test the Automation

  1. Turn on Test Mode in Zapier
  2. Create a test note in Granola:
    • Include a simple two-person conversation
    • Tag/identify the attendee in Granola (critical for the Zap to work correctly)
    • Ensure attendee name is clear and properly tagged
    • Include date information
  3. Move note to folder: Add the note to your "Process in Cursor" folder
  4. Monitor Zapier execution:
    • Check Zap history for execution status
    • Verify Cursor action was triggered
    • Check for any error messages
    • Verify attendee name was extracted correctly
  5. Verify GitHub changes:
    • Check your repository for new/updated files
    • Verify relationship file was created with correct attendee name
    • Verify relationship file format matches README template
    • Verify transcript summary format matches README template

Step 6: Activate and Monitor

  1. Activate the Zap:
    • Toggle "Off" to "On" in Zapier
    • Confirm activation
  2. Monitor first few runs:
    • Check Zap history after each meeting
    • Verify files are created correctly
    • Review Cursor agent output for any issues
  3. Refine as needed:
    • Adjust prompt if files aren't formatted correctly
    • Update field mappings if data is missing
    • Add error handling if needed

Advanced Configuration

Adding Error Handling

If the automation fails, you may want to:

  1. Add Filter Step:

    • Only proceed if transcript contains minimum word count
    • Verify attendee name exists
    • Check date is valid
  2. Add Notification Step:

    • Send email/Slack notification if automation fails
    • Include error details for debugging

Customizing the Prompt

You can customize the Cursor agent prompt to:

  • Extract specific information: Add instructions for extracting key topics, action items, or decisions
  • Format preferences: Specify markdown formatting preferences
  • Cross-referencing: Add instructions to check existing relationship files for updates
  • Tagging: Add instructions for adding tags or categories

Handling Multiple Attendees

For conversations with more than two people:

  1. Modify prompt to list all attendees
  2. Create relationship files for each new participant
  3. Update existing relationship files for known participants
  4. Create single transcript summary with all participants listed

Troubleshooting

Common Issues

Issue: Zap doesn't trigger

  • Solution: Verify Granola folder name matches exactly
  • Solution: Check Granola account connection in Zapier
  • Solution: Ensure note is actually added to folder (not just created)

Issue: Cursor action fails

  • Solution: Verify Cursor account connection in Zapier (reconnect if needed)
  • Solution: Check repository authorization in Cursor settings
  • Solution: Verify repository URL format is correct (full GitHub URL)
  • Solution: Ensure Git reference (branch name) exists in repository
  • Solution: Check that field mappings are correctly pulling data from Granola

Issue: Files created incorrectly

  • Solution: Review Cursor agent prompt for clarity
  • Solution: Verify README files exist in repository for format reference
  • Solution: Test prompt manually in Cursor first

Issue: Missing data in files

  • Solution: Check Granola field mappings in Zapier
  • Solution: Verify transcript content is being passed correctly
  • Solution: Add data validation steps in Zapier

Issue: Missing or incorrect attendee name in relationship files

  • Solution: Ensure the attendee is properly tagged/identified in Granola before moving note to folder
  • Solution: Check Granola's attendee/participant field mapping in Zapier
  • Solution: Verify the tag/identification appears correctly in Granola note metadata
  • Solution: If attendee wasn't tagged, manually update the relationship file after creation

Getting Help

  1. Zapier Support: Check Zapier's help documentation or community forum
  2. Cursor Support: Contact Cursor support for API/Cloud Agent questions
  3. Granola Support: Reach out to Granola team for integration questions

Best Practices

1. Folder Organization

  • Use clear, descriptive folder names
  • Consider multiple folders for different types of meetings
  • Keep folder structure simple

2. Transcript Quality and Attendee Tagging

  • Tag attendees before processing: Always tag/identify the person you're talking to in Granola before moving the note to the processing folder
  • If the attendee isn't tagged, the Zap may not extract their name correctly, leading to incorrect or missing relationship files
  • Ensure Granola captures clear audio for accurate transcription
  • Verify attendee names are correctly identified and tagged in Granola
  • Review transcripts before automation runs (if possible)

3. Repository Maintenance

  • Regularly review created files for accuracy
  • Update relationship files manually when needed
  • Archive old transcripts periodically

4. Automation Monitoring

  • Check Zap history weekly for errors
  • Review created files monthly for quality
  • Update prompt based on common issues

5. Security

  • Keep Zapier account credentials secure
  • Regularly review connected app permissions in Zapier
  • Review repository access permissions in Cursor settings periodically
  • Monitor Zap execution history for unauthorized access

Expected Workflow

Once set up, your workflow will be:

  1. Meeting happens → Granola records conversation
  2. Tag the attendee → In Granola, tag/identify the person you're talking to (if not already tagged)
    • Important: If the person isn't tagged, the Zap may not extract their name correctly
    • Tag them before moving the note to the folder for best results
  3. Meeting ends → Note saved to "Process in Cursor" folder
  4. Zapier triggers → Detects new note in folder
  5. Zapier extracts → Gets transcript, attendee name (from tag), date
  6. Zapier calls Cursor → Sends API request with prompt and transcript
  7. Cursor processes → Agent reads README files, processes transcript
  8. Cursor creates files → Relationship file + transcript summary
  9. Cursor commits → Creates PR or commits directly to repository
  10. You review → Check GitHub for new files, merge PR if needed

Cost Considerations

Free Tier Limitations

  • Zapier Free: 5 Zaps, 100 tasks/month
  • Granola Free: May not support folder triggers
  • Cursor: Check Cloud Agent pricing

Upgrade Considerations

  • Zapier Starter ($19.99/month): 20 Zaps, 750 tasks/month
  • Granola Paid: Required for folder functionality
  • Cursor: May require paid plan for Cloud Agent access

Next Steps

After successful setup:

  1. Test with real meetings to refine the process
  2. Customize prompts based on your specific needs
  3. Add additional steps (notifications, filtering, etc.)
  4. Document your specific configuration for future reference
  5. Share with team if others need similar automation

Additional Resources


Quick Reference: Cursor Agent Prompt Template

Please process this transcript between myself (@your-name.md) and [ATTENDEE_NAME] on [DATE]

Add any new relationship md files that need to be created in the docs/relationships folder. Note the format by reading docs/relationships/README.md

Add any new summary of transcript md files that need to be created in the docs/transcripts folder (shouldnt be raw transcript - but a super detail summary with a lot of key quotes) - prefixed with the date in YYYY-MM-DD format. Note the format by reading docs/transcripts/README.md

let me know if you have any questions before proceeding

Here is the transcript:

[TRANSCRIPT_CONTENT]

Replace:

  • [ATTENDEE_NAME] with actual attendee name from Granola
  • [DATE] with date in YYYY-MM-DD format
  • [TRANSCRIPT_CONTENT] with full transcript text