See llms.txt for all machine-readable content.

Back to Templates

Chase sales quotes and triage replies with Gmail, Google Sheets, and OpenRouter

Quick overview

This workflow runs every morning to track sent quotes in Google Sheets, checks Gmail for customer replies, and uses OpenRouter to draft follow-ups or summarize replies with suggested responses, while updating quote status and follow-up counts in the sheet.

How it works

  1. Runs daily at 9:00 and loads follow-up settings like timing thresholds, tone, and owner email.
  2. Pulls quote rows from a Google Sheets “Quotes” tab and keeps only records with a Status of “sent” or “followed up”.
  3. For each open quote, searches Gmail for the most recent message from the customer since the quote’s Sent Date.
  4. Decides whether to wait, send a follow-up, mark the quote as gone cold, or treat it as replied based on days since sent and follow-up count.
  5. If the customer replied, fetches the reply from Gmail, uses OpenRouter to classify intent and draft a suggested response, emails the summary to the owner, and updates the Google Sheet status and last-contact date.
  6. If a follow-up is due, uses OpenRouter to generate a short follow-up email, sends it via Gmail to the customer, and updates the follow-up count, status, and last-contact date in Google Sheets.
  7. If the quote is overdue with no response after the defined window, updates the Google Sheet status to “gone cold”.

Setup

  1. Create a Google Sheet with a “Quotes” tab and columns for Quote ID, Customer, Email, Job, Amount, Sent Date (YYYY-MM-DD), Status, Follow-ups, and Last Contact.
  2. Add Google Sheets OAuth2 credentials and set the spreadsheet document ID in the quote read and update steps.
  3. Add Gmail OAuth2 credentials for the Gmail API search/read and for sending emails.
  4. Add an OpenRouter API key as HTTP Header Auth (Authorization: Bearer YOUR_KEY) and confirm the model and prompts meet your requirements.
  5. Fill in Follow-up Settings values (business name, tone, owner email, timezone, and day thresholds) and activate the workflow.

Requirements

  • n8n (self-hosted or Cloud)
  • Gmail and Google Sheets (OAuth2)
  • OpenRouter API key (the default free model costs $0)

Customization

  • Change the follow-up and gone-cold day counts in Follow-up Settings
  • Edit the reply categories (accepted, question, price pushback, declined) in Understand Reply
  • Change the run time in Daily Check or swap the model in either AI node

Additional info

Tested live with real replies: "Yes, let's go ahead" was classified accepted (row marked won), "the price is more than I expected" as price pushback (needs reply), and "we've gone with someone else" as declined (lost); the owner summary email arrived each time. Customers who reply are never emailed again. AI calls retry 3 times because free models occasionally return a 502.