LOW / CODEBlueprints
sales

Automate Proposal Follow-Up Emails

Track sent proposals in a Google Sheet and automatically send follow-up emails via Gmail at day 2, day 5, and day 10 if no response. Notify the sales rep on Slack when a follow-up is sent.

Beginner~20 minn8nMake.com 157 downloads 388 views

Setup Instructions

1. Create a Google Sheet named "Proposal Tracker" with columns: Email, Contact Name, Proposal Title, Date Sent, Last Follow-Up Date, Follow-Up Count, Status (Open/Responded/Closed), Sales Rep. 2. Add your pending proposals to the sheet. Set Status to "Open" for proposals awaiting response. 3. In your automation platform, create a workflow with a scheduled trigger that runs daily at 9:00 AM. 4. Add a Google Sheets node to read all rows where Status = "Open". Use a filter to return only active proposals. 5. Add a Function/Code node that calculates days since the Date Sent column. Filter to proposals at exactly day 2, 5, or 10. 6. Add three Gmail send nodes, one for each follow-up stage: Day 2 sends a gentle check-in, Day 5 includes an additional resource or case study, Day 10 sends a final "closing the loop" message. 7. After sending, update the Google Sheet row: increment Follow-Up Count, set Last Follow-Up Date to today. If it was the day-10 email, set Status to "Closed". 8. Add a Slack notification node that messages the Sales Rep (looked up from the sheet) with the follow-up that was just sent.
Troubleshooting
**Emails not sending:** Check that your Gmail OAuth connection has "Send" scope. Gmail has a daily sending limit of 500 emails for regular accounts (2000 for Workspace) — verify you have not hit the cap. Check the Spam folder of a test recipient to ensure emails are not being flagged. **Wrong follow-up timing:** The date calculation may be off if your Date Sent column uses a different date format. Standardize on ISO format (YYYY-MM-DD) in the sheet. Also verify the scheduled trigger runs in your local timezone, not UTC. **Sheet rows not updating:** If multiple rows share the same email, the update may hit the wrong row. Use the row number from the read operation (not a search) to target the exact row. Ensure the service account has Editor permissions on the sheet. **Slack DM not delivering:** To message a specific sales rep, you need their Slack user ID (not their display name). Use the Slack "users.lookupByEmail" API to resolve the rep's email from the sheet to a Slack ID. Ensure the bot has "chat:write" and "users:read.email" scopes.

Need a custom version?

We can build a tailored automation workflow for your specific needs.

New blueprints weekly

Get notified when we publish new automation workflows.