InTouch Hub · Blue Isle Software

MailerSend

MailerSend API — send transactional email (plain text, HTML, or saved templates) and track delivery by listing and inspecting sent messages and templates.

Provided free and as is, without warranty of any kind — including merchantability, fitness for a particular purpose, and the accuracy or completeness of any result. See the licence. You are responsible for checking what this produces before relying on it.

emailmarketing-emailmessagereportstatustracker

MailerSend

Send transactional email through MailerSend and track delivery — all from an InTouch job or the AI assistant. Send plain text, HTML, or a saved MailerSend template, then list and inspect the messages that have gone out to confirm they were delivered.

Grounded in the real MailerSend API:

This tool uses the Python standard library only (urllib, json) — no third-party packages.

Operations

operation Method & endpoint What it does
send-email POST /email Send a transactional email.
list-messages GET /messages List recently sent messages (delivery tracking).
get-message GET /messages/{messageId} Get one message's details.
list-templates GET /templates List your email templates.
get-template GET /templates/{templateId} Get one template's details.

send-email

Required: to, plus at least one of text, html, or templateId. fromEmail and subject are required unless a templateId supplies a default sender/subject. fromEmail must be on a domain you have verified in MailerSend.

MailerSend returns HTTP 202 Accepted with an empty body when a send is queued; this tool reports status: "202" and an empty result object on success.

apiKey setup

  1. Sign in to the MailerSend dashboard.
  2. Verify a sending domain (Domains → add and verify DNS records).
  3. Go to Settings → API tokens → Generate new token, choose the scopes you need (at minimum Email for sending and Templates/Analytics for the read operations), and copy the token.
  4. Pass that token as the apiKey input. It is sent as Authorization: Bearer <token>. A single API token is all that is needed — there is no OAuth/JWT exchange.

Examples

Send a plain-text email:

operation = send-email
apiKey    = <your token>
fromEmail = [email protected]
fromName  = InTouch Alerts
to        = [email protected]
subject   = Nightly job finished
text      = The 02:00 export completed successfully.

Send to several recipients with an HTML body and tags:

operation = send-email
apiKey    = <your token>
fromEmail = [email protected]
to        = [email protected],[email protected]
subject   = Release notes
html      = <h1>What's new</h1><p>Lots of fixes.</p>
tags      = release,product

Send using a saved template with per-recipient variables:

operation       = send-email
apiKey          = <your token>
fromEmail       = [email protected]
to              = [{"email":"[email protected]","name":"Jane"}]
templateId      = 3n9j5x8k7zy4qe1m
personalization = [{"email":"[email protected]","data":{"first_name":"Jane"}}]

Track delivery — list recent messages, then inspect one:

operation = list-messages
apiKey    = <your token>
limit     = 50
operation = get-message
apiKey    = <your token>
messageId = 5ee0b166b251345e407c9207

List and inspect templates:

operation = list-templates
apiKey    = <your token>
operation  = get-template
apiKey     = <your token>
templateId = 3n9j5x8k7zy4qe1m

Output

Every operation prints a single JSON object:

On error the tool prints {"error": "<message>"} and exits non-zero, failing the step.

Publishes

The keys a later task may reference as {{taskName.key}}. Referencing anything not listed here resolves to nothing at run time.

Input Properties

Every property this tool accepts, from its own tool.iml.

Property Type Required Default Description
apiKey string yes MailerSend API token. Create one in the MailerSend dashboard under Settings > API tokens. Sent as 'Authorization: Bearer '.
operation string yes One of: send-email, list-messages, get-message, list-templates, get-template
fromEmail string no Sender email for send-email. Must be on a verified MailerSend domain. Optional only when templateId supplies a default sender.
fromName string no Optional sender display name for send-email.
to string no Recipient(s) for send-email. Comma-separated emails ([email protected],[email protected]) or a JSON array of {"email":"[email protected]","name":"A"} objects. Required for send-email (1-50 recipients).
cc string no Optional CC recipient(s) for send-email. Same format as 'to' (max 10).
bcc string no Optional BCC recipient(s) for send-email. Same format as 'to' (max 10).
subject string no Email subject for send-email (max 998 chars). Optional only when templateId supplies a default subject.
text string no Plain-text body for send-email. Provide at least one of text, html, or templateId.
html string no HTML body for send-email. Provide at least one of text, html, or templateId.
templateId string no MailerSend template id. Used as the body source for send-email and as the lookup id for get-template.
personalization string no Optional JSON array of per-recipient template variables for send-email, e.g. [{"email":"[email protected]","data":{"name":"Jane"}}].
tags string no Optional comma-separated tags for send-email (max 5), used for filtering and analytics.
messageId string no Message id. Required for get-message.
domainId string no Optional domain id filter for list-messages and list-templates.
page string no Optional page number for list-messages and list-templates.
limit string no 25 Max records for list-messages and list-templates (10-100). Defaults to 25.