Tailored first-touch emails for new Airtable prospects

By General Input

When a new prospect lands in Airtable, send a short, personalized first-touch email through SendGrid and stamp the send back onto the row.

Integrations

  • Airtable
  • SendGrid

Type

Agentic Task

Categories

  • Sales
  • Marketing

Build me an agent workflow that sends a tailored first-touch outreach email through SendGrid every time a new prospect row lands in my Airtable outreach table.

Trigger: poll Airtable on new_record for a specific base and table that I will configure (think of it as a Cold Outreach base with a Prospects table). Each new record should fire one run of the workflow.

On each run, the agent should:

1. Use Airtable Get Record to pull the full record for the newly created row. Read at minimum the prospect's name, email, company, role/title, and any context columns the user keeps (for example: recent news, mutual connection, persona, pain point, recent funding, podcast appearance, blog post). Treat the column set as configurable, not hardcoded.

2. Skip the row (do nothing, do not send, do not update) if the email field is empty or if a Status field is already set to Sent. Also skip if there is no usable personalization hook in any of the context columns. Log why it was skipped.

3. Draft a short first-touch email (roughly 4 to 7 sentences, plain text by default) that is anchored to ONE concrete detail from the record so it does not read as generic. The subject line should also reference that detail. The voice, sign-off, and call to action should come from a tone note the user provides when configuring the workflow.

4. Send the email via SendGrid's Send Email operation from a verified sender address that the user configures. To-name should be the prospect's name. Use the user-configured from name and reply-to.

5. Capture the SendGrid message ID from the x-message-id response header (POST /mail/send returns 202 with an empty body, so the message ID only lives in that header).

6. Call Airtable Update Record on that same row to set Status = Sent, LastTouchAt = the current timestamp, and MessageId = the SendGrid x-message-id value. The exact field names should be configurable in case the user's schema uses different labels.

Also enforce a per-run send cap (default 25, user-configurable). If the cap is hit, stop sending for this run and leave the remaining rows untouched so they get picked up on the next trigger.

On any SendGrid error (400, 401, 403, 413, 429), do NOT mark the row as Sent. Instead set Status to something like Error and write the error message to an optional ErrorNote field so the user can see what went wrong in Airtable.

Make the table/base IDs, the column names, the from address, the reply-to address, the voice/tone note, and the per-run cap all easy to edit after the workflow is built.

Related prompts

Explore more prompts
Creator roster board for rebook, test, or pause callsRun your nutrition clients' weekly meal plans from one consoleInstagram UGC rights tracker and repost approval boardA verification desk for every document your team scansBrowse and shortlist creators without burning audit creditsGlobal operations exposure map for your sites and suppliersDeal sourcing kanban board for your Harmonic saved searchesProof client shoots and hand off the delivery album in one placeField service dispatch board that ranks the closest techVendor due diligence register with on-demand risk briefs