Back to Mailsoftly in Google Sheets
SheetXAI logo
Mailsoftly logo
Mailsoftly · Google Sheets Guide

Create Mailsoftly Email Drafts in Bulk From a Google Sheet

2026-05-14
5 min read

The Scenario

A digital agency content manager just got handed the campaign planning sheet for a client. Eight rows. Each one is a separate email campaign — a different product line, a different list, a different sender name. Subject lines in column A, HTML bodies in column B, contact list IDs in column C, sender names in column D.

The client wants all eight visible in Mailsoftly as drafts by end of business so the account team can review them before anything gets scheduled. Creating them manually — open the draft editor, paste the subject, paste the HTML, select the list, set the sender, save — eight times — is an afternoon's worth of clicking through a UI.

The bad version:

  • Open Mailsoftly's draft creation screen.
  • Paste the subject from row 1, paste the HTML from column B, find the right list from a dropdown, type the sender name, save.
  • Navigate back, repeat for row 2.
  • On row 5, paste the wrong HTML body because you're working across two monitors and the windows got mixed up.

Eight campaigns, eight manual UI sessions. The review meeting is at 4pm.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent inside your Google Sheet. Through its Mailsoftly integration, it can read every campaign row and create all eight drafts in a single operation — each one staged in Mailsoftly and ready for the account team to review.

Open the campaign planning sheet and run this prompt:

For each row in this sheet, create a Mailsoftly email draft using the subject from column A, HTML body from column B, contact list ID from column C, and sender name from column D — write the draft ID into column E

What You Get

  • Eight Mailsoftly email drafts created, one per row.
  • Each draft has the subject, body, list assignment, and sender name from the corresponding sheet row.
  • Column E populated with the draft ID for each created draft so the account team can reference them directly.
  • Any row that fails — invalid list ID, missing subject — flagged with ERROR in column E.

What If the Data Is Not Quite Ready

The HTML bodies are stored on a separate tab

The content team keeps the HTML in a tab called "Templates" with draft names in column A and HTML in column B. The planning sheet references those template names.

For each row in the Planning tab, look up the HTML body from the Templates tab by matching the template name in column B of Planning to column A of Templates. Then create a Mailsoftly draft using the subject from column A of Planning, the matched HTML body, the list ID from column C, and sender name from column D. Write draft IDs into column E of Planning.

List IDs in column C are actually list names, not Mailsoftly IDs

The sheet uses human-readable list names and you need to resolve them to Mailsoftly list IDs before creating the drafts.

Fetch all Mailsoftly contact lists and build a lookup of list names to IDs. For each row in this sheet, resolve the list name in column C to its Mailsoftly ID, then create a draft using subject from column A, body from column B, resolved list ID, and sender name from column D. Write the draft ID in column E and the resolved list ID in column F.

Some HTML bodies have placeholder text that needs to be replaced before staging

The template in column B contains tokens like [CLIENT_NAME] and [CAMPAIGN_DATE] that need to be replaced with values from columns E and F before the draft goes to Mailsoftly.

For each row in this sheet, replace [CLIENT_NAME] in column B with the value in column E and [CAMPAIGN_DATE] with the value in column F. Then create a Mailsoftly draft using the modified body, subject from column A, list ID from column C, and sender name from column D. Write draft IDs in column G.

Validate all required fields, substitute placeholders, resolve list names, and create all drafts in one shot

Eight rows, some with placeholder tokens, some with list names instead of IDs, and a few with missing sender values that should fall back to a default.

Before creating drafts: replace [CLIENT_NAME] in column B with column E and [CAMPAIGN_DATE] with column F. Resolve list names in column C to Mailsoftly list IDs. If column D is empty, use 'SheetXAI Demo' as the sender name. Then create one Mailsoftly draft per row using the prepared values. Write draft IDs in column G and log any errors in column H.

Preparation and creation in one prompt.

Try It

Get the 7-day free trial of SheetXAI and open any Google Sheet with campaign content rows, then ask it to stage all your Mailsoftly drafts in a single prompt. See also: Audit Mailsoftly email draft statuses and the Mailsoftly overview.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more