Draft follow-up emails after every external meeting

Every 30 minutes during business hours, find meetings that just ended, draft a personalized follow-up email for each one, and post a review link to Slack.

Agentic Task
NylasHubSpotSlackSalesMeeting WorkflowsEmail AutomationNotifications & Alerts
PromptCreate

Build me an agent workflow that runs on a cron trigger every 30 minutes during my business hours (roughly 8am to 7pm on weekdays, in my local time zone). Each run drafts a personalized follow-up email for every external meeting on my Nylas calendar that just ended, and stages everything for me to review before anything goes out.

For each run, do the following:

1) Use Nylas "List Events" scoped to a time window that ended in the last hour to find meetings that just wrapped. Skip anything that was declined or cancelled, and skip internal-only meetings by filtering to events with at least one attendee whose email domain does not match my own.

2) Before drafting anything for a meeting, use Nylas "List Drafts" to check whether a follow-up draft for the same meeting or attendee is already sitting in my outbox. If one exists, skip the meeting so I never see duplicates.

3) For each qualifying meeting, take the primary external attendee (or each external attendee if the meeting had multiple) and use Nylas "List Messages" or "List Threads" with a provider-native search on that person's email address to pull the last week or two of thread context. Read enough of the recent messages to match my usual tone and voice with them.

4) Cross-reference the attendee's email against HubSpot with "Search Contacts". If there's a match, look up any associated deal (Get Deal / Search Deals) so the draft can naturally reference the deal name, stage, and owner. If there's no HubSpot match, that's fine, just skip the CRM references for that person and keep going.

5) Write a short, warmly-worded follow-up email that:

- Recaps what was discussed, inferred from the meeting title, description, and recent thread history.

- Restates the concrete next steps and any specific asks (docs to send, intros to make, dates to hold).

- Matches the tone of my prior email history with that person (formal vs. casual, first-name basis, emoji or not).

- Never invents commitments I did not make. If context is thin, keep the recap brief and hedge ("here's what I took away") rather than fabricating specifics.

6) Stage the email with Nylas "Create Draft" addressed to the external attendee(s). Do NOT send it. Under no circumstances should this workflow call Send Draft or auto-send. The whole point is that I review before firing.

7) If HubSpot matched, use "Create Note" to log a short summary of the meeting and the drafted next steps to the associated contact (and deal, when there is one) so the CRM has a record even before I send.

8) At the end of the run, if at least one draft was staged, post ONE Slack summary via "Send a Message" to the channel I specify. The message should list each meeting on its own line: attendee name, company, meeting title, deal name and stage if HubSpot matched, and a short label indicating a draft is waiting for review. Skip the Slack post entirely on runs where nothing qualified.

Behavioral guardrails: never send email automatically, never modify existing drafts, never write to any HubSpot object other than notes, and never post to Slack unless at least one draft was created that run. Keep the summary Slack message compact even on busy days (one line per meeting, group by attendee if the same person had two meetings).

When you set this up, please ask me for: the Slack channel to post the summary to, my business hours and time zone, and my own email domain (so we can tell internal from external correctly).

Additional information

What does this prompt do?
  • Scans your calendar every 30 minutes for external meetings that ended in the last hour, then skips anything internal, declined, or cancelled.
  • Writes a warm, personalized follow-up email in your voice by pulling recent email history with each attendee and pattern-matching your usual tone.
  • Cross-references attendees against HubSpot so drafts and notes reference the right deal, stage, and owner when a match exists.
  • Saves each email as a draft in your outbox (never sent automatically) and logs a meeting recap to the matching contact or deal in HubSpot.
  • Posts one clean Slack summary listing every meeting with a link to the draft that is waiting for your review.
What do I need to use this?
  • A Nylas account connected to the calendar and mailbox you use for external meetings.
  • A HubSpot login where your contacts and deals live, so the recap can name the right deal and owner.
  • A Slack workspace and the channel you want the review-ready summary posted in.
  • A rough sense of your business hours and time zone so the schedule matches when your team actually meets.
How can I customize it?
  • Change the schedule (every 30 minutes, hourly, or only during specific hours) and the time window it looks back over.
  • Decide what counts as an external meeting: filter by domain, exclude specific calendars, or ignore recurring internal syncs.
  • Pick a different destination for the summary (a private DM, a specific team channel) or skip the Slack step entirely.
  • Tune the tone and length of the drafted follow-up, or add a standard sign-off, calendar link, or next-step template.

Frequently asked questions

Will this ever send an email without me approving it?
No. Every follow-up is saved as a draft in your outbox. You review, edit, and hit send yourself. The workflow is designed to stage the work, not to speak on your behalf.
What happens if the attendee is not in HubSpot?
The email still gets drafted using the meeting details and your recent thread history. The HubSpot note step is simply skipped for that person, so the workflow never fails just because someone is not in your CRM yet.
How does it decide a meeting is external?
It checks the attendee list for anyone outside your own email domain. Internal-only meetings, declined events, and cancelled events are ignored so your outbox does not fill up with drafts you do not need.
Will it draft the same follow-up twice if the workflow runs again?
No. Before drafting, it checks your outbox for a follow-up already staged for that meeting or attendee and skips anything that is already waiting for you.
Can I use this with Gmail or Outlook?
Yes. Nylas connects to Google Workspace, Microsoft 365, and Exchange, so the same workflow runs against whichever mailbox and calendar you use.

Stop writing the same follow-up email after every meeting.

Connect Nylas, HubSpot, and Slack once, and Geni stages a personalized draft after every external meeting so you just review and send.