Skip to content

Marketing Automation · Beta

Campaign Monitor
API integration

Ship Marketing Automation features without building the integration. Full Campaign Monitor API access via Proxy and 110+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
Campaign Monitor

Use Cases

Why integrate with Campaign Monitor

Common scenarios for SaaS companies building Campaign Monitor integrations for their customers.

01

Embed white-labeled email marketing in your SaaS

Vertical SaaS and agency platforms can provision Campaign Monitor sub-accounts for each of their customers, apply billing markups, and offer email marketing as a native feature without users ever leaving the product.

02

Sync CRM contacts into email audiences

CRMs and CDPs can push leads and customers into Campaign Monitor lists with mapped custom fields, enabling marketers to segment and target audiences automatically based on proprietary SaaS data.

03

Surface email engagement in sales workflows

Pull opens, clicks, bounces, and unsubscribes from campaigns and journeys into your product's activity timeline so sales reps and account managers can act on engagement signals in real time.

04

Trigger transactional and journey emails from product events

E-commerce, event, and workflow platforms can fire custom events into Campaign Monitor journeys or send Smart Transactional emails, letting marketing teams own the design while engineering owns the trigger logic.

05

Automate list hygiene and compliance

Keep your source-of-truth database clean by syncing unsubscribes, bounces, and suppression list changes from Campaign Monitor back into your platform via webhooks.

What You Can Build

Ship these features with Truto + Campaign Monitor

Concrete product features your team can ship faster by leveraging Truto’s Campaign Monitor integration instead of building from scratch.

01

Auto-provisioned client workspaces

When a user signs up in your SaaS, programmatically create a Campaign Monitor client, assign admins, set billing (PAYG or monthly), and transfer credits in one flow.

02

Two-way subscriber sync with custom fields

Create custom fields on the fly, bulk import up to 1,000 subscribers per call, and keep subscriber attributes updated as your product data changes.

03

Engagement activity feed

Pipe campaign and journey opens, clicks, bounces, and unsubscribes — including geocoded data and timestamps — into your product's contact timeline.

04

In-app campaign composer

Let users browse templates, draft campaigns, send previews, schedule or send, and pull back summary stats without leaving your UI.

05

Journey-triggered lifecycle emails

Publish custom journey events from your backend (e.g., abandoned cart, webinar reminder, onboarding step) to kick off automated Campaign Monitor journeys designed by marketers.

06

Transactional send API with marketer-designed templates

Trigger Smart Transactional emails with a JSON payload so your engineers ship receipts, confirmations, and notifications while marketers control the design in Campaign Monitor.

07

Suppression and compliance manager

Expose suppress/unsuppress controls and sync suppression list changes back into your product to maintain GDPR and CAN-SPAM compliance.

SuperAI

Campaign Monitor AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_campaign_monitor_clients

List all Campaign Monitor clients in your account. Returns: ClientID, Name, SystemDate.

create_a_campaign_monitor_client

Create a new Campaign Monitor client with basic contact information and no application access. Returns the new client's ClientID. Required: CompanyName, Country, TimeZone. Max 5 clients per 30 minutes.

get_single_campaign_monitor_client_by_id

Get the complete details for a Campaign Monitor client by id. Returns the client object including ApiKey, BasicDetails (ClientID, CompanyName, Country, TimeZone, and primary contact fields when a single person exists), and BillingDetails. Required: id.

campaign_monitor_clients_update_payg_billing

Update PAYG billing settings for a Campaign Monitor client (currency, markups, and whether the client pays). Returns an empty 200 response on success. Required: client_id, Currency, CanPurchaseCredits, ClientPays, MarkupPercentage.

campaign_monitor_clients_update_monthly_billing

Set monthly billing options for a Campaign Monitor client including currency, client payment, mark-up percentage, and monthly scheme. Returns an empty 200 response on success. Requires client_id, Currency, ClientPays, and MarkupPercentage. Supported currencies: USD, GBP, EUR, CAD, AUD, NZD.

delete_a_campaign_monitor_client_by_id

Delete a Campaign Monitor client by id. Returns an empty 200 response on success.

campaign_monitor_clients_update_basics

Update the basic details (name, country, timezone) for a Campaign Monitor client. Returns an empty 200 response on success. Required: client_id, CompanyName, Country, TimeZone.

list_all_campaign_monitor_billing_details

Get billing details for a Campaign Monitor account, including the number of credits available. Returns the credits balance.

list_all_campaign_monitor_countries

List the valid countries accepted by Campaign Monitor as input, typically when creating a client. Returns an array of country name strings (e.g. Afghanistan, Albania, Algeria, American Samoa).

list_all_campaign_monitor_timezones

List valid timezones in Campaign Monitor accepted when creating a client. Returns a list of timezone display names such as '(GMT) Casablanca' or '(GMT) Dublin, Edinburgh, Lisbon, London'.

campaign_monitor_system_date_get_current_date

Get the current date and time in your Campaign Monitor account's timezone. Returns: SystemDate. The server's clock, useful for syncing lists or campaigns with an external system and accurately determining Campaign Monitor's server time when synchronizing.

create_a_campaign_monitor_admin

Add an administrator to the account. Required: EmailAddress, Name. Returns {EmailAddress}.

list_all_campaign_monitor_admins

List all administrators (active or invited) on the Campaign Monitor account. Returns: EmailAddress, Name, Status, SystemDate.

update_a_campaign_monitor_admin_by_id

Update an administrator, identified by their current email address as id. Put the new address in EmailAddress to change it. Required: id (current email), EmailAddress, Name. Returns {EmailAddress}.

delete_a_campaign_monitor_admin_by_id

Delete an administrator, identified by their email address as id. Required: id (email).

campaign_monitor_primary_contact_set

Set the primary contact for the account to an existing administrator. Required: email (query). Returns {EmailAddress}.

list_all_campaign_monitor_primary_contact

Get the primary contact currently assigned to the Campaign Monitor account. Returns: EmailAddress, SystemDate.

create_a_campaign_monitor_external_session

Create an embedded session in Campaign Monitor that initiates a login session for a member of a client. Returns a single-use SessionUrl that starts the session (typically loaded in an iframe). Required: Email, Chrome, Url, IntegratorID, ClientID. Chrome only accepts All, Tabs, or None.

list_all_campaign_monitor_client_lists

List all subscriber lists belonging to a Campaign Monitor client. Returns: ListID, Name, CompanyName, Country, TimeZone. Required: client_id.

campaign_monitor_client_lists_lists_for_email

List all subscriber lists across a Campaign Monitor client to which an email address is subscribed. Returns: CompanyName, Country, TimeZone. Required: client_id, email.

list_all_campaign_monitor_client_segments

List the segment definitions belonging to a Campaign Monitor client across all of their subscriber lists. Returns an array of segments, each with ListID, SegmentID, and Title. Required: client_id.

list_all_campaign_monitor_suppression_list

List suppression entries for a Campaign Monitor client. Required: client_id.

campaign_monitor_suppression_list_suppress

Add email addresses to a Campaign Monitor client's suppression list. Returns an empty 200 response on success. Required: client_id and EmailAddresses.

campaign_monitor_suppression_list_unsuppress

Remove an email address from a Campaign Monitor client's suppression list. Returns an empty 200 response on success. Required: client_id and email.

list_all_campaign_monitor_client_templates

List templates belonging to a Campaign Monitor client. Returns: CompanyName, Country, TimeZone. Required: client_id.

campaign_monitor_credits_transfer

Transfer credits between your account and a client in Campaign Monitor. Returns the resulting AccountCredits and ClientCredits balances. Required: client_id, Credits, CanUseMyCreditsWhenTheyRunOut.

create_a_campaign_monitor_person

Add a person to a client. Required: client_id, EmailAddress, Name, AccessLevel. Password is optional (min 6 characters if supplied). Returns {EmailAddress}.

list_all_campaign_monitor_people

List all people (active or invited) associated with a Campaign Monitor client. Account administrators are excluded. Returns the EmailAddress, Name, AccessLevel, and Status of each person. Required: client_id.

update_a_campaign_monitor_person_by_id

Update a person in a client, identified by their current email address as id. Put the new address in EmailAddress to change it. Required: id (current email), client_id, EmailAddress, Name, AccessLevel.

delete_a_campaign_monitor_person_by_id

Delete a person from a client, identified by their email address as id. Required: id (email), client_id.

list_all_campaign_monitor_tags

List campaign tags for a Campaign Monitor client in ascending order. Returns: Name, NumberOfCampaigns, CompanyName, Country, TimeZone. Required: client_id.

campaign_monitor_campaigns_list_sent

List Campaign Monitor campaigns for a client that have already been sent. Returns campaigns with CampaignID, Name, Subject, FromName, FromEmail, ReplyTo, SentDate, TotalRecipients, WebVersionURL, WebVersionTextURL, and Tags. Required: client_id.

campaign_monitor_campaigns_list_scheduled

List Campaign Monitor campaigns for a client that are scheduled to send in the future. Returns scheduled campaigns with CampaignID, Name, Subject, FromName, FromEmail, ReplyTo, DateScheduled, ScheduledTimeZone, DateCreated, PreviewURL, PreviewTextURL, and Tags. Required: client_id.

campaign_monitor_campaigns_list_drafts

List Campaign Monitor draft campaigns for a client that have been created but not yet scheduled or sent. Returns drafts with CampaignID, Name, Subject, FromName, FromEmail, ReplyTo, DateCreated, PreviewURL, PreviewTextURL, and Tags. Required: client_id.

create_a_campaign_monitor_campaign

Create a draft Campaign Monitor campaign from raw HTML content. Returns: Name, Recipients, TotalOpened, Clicks, Unsubscribed, Bounced, UniqueOpened, SpamComplaints, WebVersionURL, WebVersionTextURL, WorldviewURL, and 3 more. Required: client_id, Name, Subject, FromName, FromEmail, ReplyTo, HtmlUrl, ListIDs or SegmentIDs. InlineCss defaults to true.

campaign_monitor_campaigns_create_from_template

Create a draft Campaign Monitor campaign from a saved template. Required: client_id, Name, Subject, FromName, FromEmail, ReplyTo, TemplateID, ListIDs or SegmentIDs.

campaign_monitor_campaigns_send

Schedule a draft campaign in Campaign Monitor for immediate or future delivery. Returns an empty 200 response on success. Required: campaign_id, ConfirmationEmail, SendDate.

campaign_monitor_campaigns_send_preview

Send a preview of a draft campaign in Campaign Monitor to a list of test email addresses; personalization tags are populated using fallback values. Returns an empty 200 response on success. Required: campaign_id, PreviewRecipients.

campaign_monitor_campaigns_email_client_usage

List the email clients Campaign Monitor subscribers used to open a campaign. Returns a list of entries with: Client, Version, Percentage, Subscribers. Required: campaign_id.

campaign_monitor_campaigns_lists_and_segments

Get the lists and segments a Campaign Monitor campaign was sent to. Returns two collections: Lists (each with ListID and Name) and Segments (each with ListID, SegmentID, and Title). Required: campaign_id.

campaign_monitor_campaigns_recipients

List every subscriber a Campaign Monitor campaign was sent to, with the list they belong to. Returns paged results: Results (with EmailAddress and ListID), ResultsOrderedBy, OrderDirection, PageNumber, PageSize, RecordsOnThisPage, TotalNumberOfRecords, NumberOfPages. Required: campaign_id.

campaign_monitor_campaigns_bounces

List email bounces received by a Campaign Monitor campaign. Returns a paged result with subscriber email, list id, bounce type (Hard/Soft), date, and bounce reason. Required: campaign_id.

campaign_monitor_campaigns_opens

List subscribers who opened a Campaign Monitor campaign. Returns a paged result with email address, list id, date, IP address, and geocoded location (latitude, longitude, city, region, country code, country name). Required: campaign_id.

campaign_monitor_campaigns_clicks

List subscribers who clicked a link in a Campaign Monitor campaign. Returns a paged result with email address, link URL, list id, date, IP address, and geocoded location. Required: campaign_id.

campaign_monitor_campaigns_unsubscribes

List subscribers who unsubscribed via a Campaign Monitor campaign. Returns a paged result with email address, list id, date, and the IP address they unsubscribed from. Required: campaign_id.

campaign_monitor_campaigns_spam_complaints

List subscribers who marked a Campaign Monitor campaign as spam. Returns a paged result with email address, list id, and the date they marked the campaign as spam. Required: campaign_id.

campaign_monitor_campaigns_unschedule

Cancel a scheduled Campaign Monitor campaign and move it back into drafts. Returns an empty 200 response on success. Required: campaign_id.

campaign_monitor_campaigns_summary

Get a basic summary of results for a sent Campaign Monitor campaign. Returns: Name, Recipients, TotalOpened, UniqueOpened, Clicks, Unsubscribed, Bounced, SpamComplaints, Forwards, Likes, Mentions, WebVersionURL, WebVersionTextURL, WorldviewURL. Required: campaign_id.

delete_a_campaign_monitor_campaign_by_id

Delete a campaign from your Campaign Monitor account. Returns an empty 200 response on success. Required: id.

list_all_campaign_monitor_sending_domains

List sending domains in Campaign Monitor for a client. Returns an array of sending domain objects with SendingDomain and Selector per record. Required: client_id.

create_a_campaign_monitor_sending_domain

Create a sending domain in Campaign Monitor for a client. Returns the created sending domain's SendingDomain and Selector. Required: client_id and SendingDomain. Selector is optional.

campaign_monitor_sending_domains_copy

Copy a verified sending domain from one Campaign Monitor client to another within the same account. Returns an empty 201 response on success. Required: client_id (source), DestinationClientID, SendingDomain, Selector.

campaign_monitor_sending_domains_verify

Verify and authenticate the DNS records of a sending domain in Campaign Monitor. Returns the verification result including the SendingDomain and Selector. Required: client_id and sendingdomain. selector is optional - when omitted, all matching domains in the client are verified.

delete_a_campaign_monitor_sending_domain_by_id

Delete a sending domain from a Campaign Monitor client. Returns an empty 200 response on success. Required: client_id, sendingdomain, selector.

create_a_campaign_monitor_list

Create a new subscriber list under a Campaign Monitor client. Returns the new list's ID. Required: client_id, Title, UnsubscribeSetting (must be AllClientLists or OnlyThisList).

campaign_monitor_lists_stats

Get subscriber statistics for a Campaign Monitor list. Returns counts for active, unsubscribed, deleted, and bounced subscribers, plus new-subscriber breakdowns for today, yesterday, this week, this month, and this year. Required: list_id.

campaign_monitor_lists_customfields

List the custom fields defined on a Campaign Monitor list, returning an array of fields with FieldName, Key, DataType, FieldOptions, and VisibleInPreferenceCenter. Required: list_id.

campaign_monitor_lists_segments

List the segments defined on a Campaign Monitor list, returning an array of segments with ListID, SegmentID, and Title. Required: list_id.

get_single_campaign_monitor_list_by_id

Get a Campaign Monitor list by id. Returns the list object including ListID, Title, ConfirmedOptIn, UnsubscribeSetting, UnsubscribePage, and ConfirmationSuccessPage. Required: id.

update_a_campaign_monitor_list_by_id

Update the settings of a Campaign Monitor list by id. Returns the updated list object including Title, UnsubscribePage, UnsubscribeSetting, ConfirmedOptIn, ConfirmationSuccessPage, and ListID. Required: id, Title, UnsubscribeSetting.

delete_a_campaign_monitor_list_by_id

Delete a Campaign Monitor list by id. Returns the deleted list object including its ListID, Title, UnsubscribeSetting, and ConfirmedOptIn flag. Required: id.

create_a_campaign_monitor_custom_field

Create a custom field for a Campaign Monitor subscriber list. Returns the generated custom field key (a string like "[NewsletterFormat]"). Requires list_id, FieldName, DataType, and VisibleInPreferenceCenter; Options is required when DataType is MultiSelectOne or MultiSelectMany.

campaign_monitor_custom_fields_update_options

Update the available options for an existing Multi-Valued custom field (MultiSelectOne or MultiSelectMany) on a Campaign Monitor list. Any segment rules based on the field are removed. Returns an empty 200 OK response on success. Requires list_id, custom_field_key, KeepExistingOptions, and Options.

update_a_campaign_monitor_custom_field_by_id

Update a custom field's display name and preference-center visibility on a Campaign Monitor list. When the name changes, the custom field key changes too and the new key is returned. Returns the new custom field key (a string like "[NewsletterFormatRenamed]"). Requires list_id, custom_field_key, FieldName, and VisibleInPreferenceCenter.

delete_a_campaign_monitor_custom_field_by_id

Delete a specific custom field from a Campaign Monitor list. Any segment rules based on the field are also removed. Returns an empty 200 OK response on success. Requires list_id and custom_field_key.

list_all_campaign_monitor_list_webhooks

List Campaign Monitor webhooks configured for a subscriber list. Returns each webhook's WebhookID, Events, Url, Status, and PayloadFormat. Required: list_id.

create_a_campaign_monitor_list_webhook

Create a webhook for a Campaign Monitor subscriber list. Returns the new webhook's ID. Required: list_id, Events, Url, and PayloadFormat.

campaign_monitor_list_webhooks_test

Test a Campaign Monitor list webhook by posting a sample payload to its configured URL. Returns an empty 200 response on success. If the webhook subscribes to multiple events, the payload sent to the webhook includes an example for each event as part of a batch. Required: list_id, webhook_id.

campaign_monitor_list_webhooks_activate

Activate a Campaign Monitor webhook associated with a list. Returns an empty 200 response on success. Required: list_id, webhook_id.

campaign_monitor_list_webhooks_deactivate

Deactivate a webhook on a Campaign Monitor list. The request body should be empty despite this being a PUT request. Returns an empty 200 response on success. Required: list_id, webhook_id.

delete_a_campaign_monitor_list_webhook_by_id

Delete a webhook from a Campaign Monitor list. Returns an empty 200 response on success. Required: list_id, webhook_id.

list_all_campaign_monitor_list_active_subscribers

List active subscribers for a Campaign Monitor list. Required: list_id.

list_all_campaign_monitor_list_unconfirmed_subscribers

List unconfirmed subscribers (those who subscribed but have not yet confirmed via double opt-in) for a Campaign Monitor list. Returns each subscriber's EmailAddress, Name, MobileNumber, ListJoinedDate, Date, State, CustomFields, ReadsEmailWith, and consent preferences (ConsentToTrack, ConsentToSendSms). Required: list_id.

list_all_campaign_monitor_list_unsubscribed_subscribers

List unsubscribed subscribers for a Campaign Monitor list. Returns each subscriber's EmailAddress, Name, Date, State, and CustomFields. Required: list_id. Supports an optional date filter, sort field, sort direction, and consent preferences.

list_all_campaign_monitor_list_bounced_subscribers

List bounced subscribers for a Campaign Monitor list. Returns paged subscriber records including EmailAddress, Name, MobileNumber, Date (bounce), State, CustomFields, ReadsEmailWith, ConsentToTrack, and ConsentToSendSms. Required: list_id. Max page size 1000.

list_all_campaign_monitor_list_deleted_subscribers

List deleted subscribers for a Campaign Monitor list with optional date filter, sort order, and consent preference flags. Returns one record per deleted subscriber including email, name, state, deletion date, and custom fields. Required: list_id.

create_a_campaign_monitor_segment

Create a Campaign Monitor segment for a list. Returns the new segment's ID as a quoted string. Required: list_id, Title. RuleGroups are optional on creation; if omitted, rules can be added later via the add_rulegroup method. Wait about an hour after creation before sending to the segment so it finishes calculating.

campaign_monitor_segments_add_rulegroup

Add a new rule group to an existing Campaign Monitor segment. Returns an empty 200 response on success. Required: segment_id, Rules.

campaign_monitor_segments_delete_rules

Clear all existing rules and rule groups from a Campaign Monitor segment. Returns an empty 200 response on success. Required: segment_id. After this call the segment has no rules until a new rule group is added (effectively a blank slate).

get_single_campaign_monitor_segment_by_id

Get a Campaign Monitor segment by id. Returns: ClientID, Name. Required: id.

update_a_campaign_monitor_segment_by_id

Update the name and rules of an existing Campaign Monitor segment. Returns an empty 200 response on success. Required: id, Title. RuleGroups are optional; supplying them clears all existing rules first, so omit them to leave rules unchanged.

delete_a_campaign_monitor_segment_by_id

Delete a segment in Campaign Monitor by id. Returns an empty 200 response on success.

list_all_campaign_monitor_segment_active_subscribers

List the active subscribers that match a Campaign Monitor segment's rules. Required: segment_id.

campaign_monitor_subscribers_import

Import up to 1,000 subscribers into a list in one request. Required: list_id, Subscribers.

campaign_monitor_subscribers_history

Get a subscriber's campaign and automated email history (opens, clicks, bounces) for a list. Required: list_id, email.

campaign_monitor_subscribers_unsubscribe

Unsubscribe a subscriber from a list. Required: list_id, EmailAddress.

create_a_campaign_monitor_subscriber

Add a subscriber to a Campaign Monitor list. The subscriber is identified by EmailAddress in the body. Required: list_id, EmailAddress, ConsentToTrack.

get_single_campaign_monitor_subscriber_by_id

Get a subscriber's details from a list by email address. Required: id (the subscriber email address), list_id.

update_a_campaign_monitor_subscriber_by_id

Update a subscriber on a list, identified by their current email in the email query param. Put a new address in EmailAddress to change it. Required: id (the subscriber email address), list_id.

delete_a_campaign_monitor_subscriber_by_id

Delete a subscriber from a list. Deleted subscribers cannot be re-added by import or API unless resubscribed. Required: id (the subscriber email address), list_id.

create_a_campaign_monitor_template

Create a Campaign Monitor template for a client. Returns the new template ID as a JSON string. Required: client_id, Name, HtmlPageURL, ZipFileURL.

campaign_monitor_templates_copy

Copy a Campaign Monitor template from the My templates area to a nominated client. Returns a 202 Accepted response; duplication is asynchronous, so the new template ID is not in the response. Required: template_id, destination_client_id.

get_single_campaign_monitor_template_by_id

Get a single Campaign Monitor template by id. Returns: TemplateID, Name, PreviewURL, ScreenshotURL, DestinationClientID. Required: id.

update_a_campaign_monitor_template_by_id

Update a Campaign Monitor template by id — change its name and the HTML/zip file URLs. Returns an empty 200 OK response. Required: id, Name (at minimum).

delete_a_campaign_monitor_template_by_id

Delete a Campaign Monitor template by id. Returns an empty 200 OK response on success. Required: id.

list_all_campaign_monitor_client_journeys

List all journeys belonging to a Campaign Monitor client. Returns: ListID, JourneyID, Name, Status, Title, UnsubscribePage, UnsubscribeSetting, ConfirmedOptIn, ConfirmationSuccessPage. Required: client_id.

campaign_monitor_journeys_summary

Get a full summary of a Campaign Monitor journey, including its ID, name, trigger type and status, plus email-level statistics. Returns: JourneyID, Name, TriggerType, Status, Emails. Required: journey_id.

campaign_monitor_journeys_copy

Copy a journey. Runs asynchronously: returns 202 Accepted with an empty body (the new journey ID is not returned). Required: journey_id.

campaign_monitor_journey_emails_recipients

List subscribers who were sent a particular journey email by sent date. Returns: Results, ResultsOrderedBy, OrderDirection, PageNumber, PageSize, RecordsOnThisPage, TotalNumberOfRecords, NumberOfPages. Required: email_id. Journey reporting data older than 1 year is unavailable.

campaign_monitor_journey_emails_opens

List subscribers who opened a particular journey email, with date/time, IP, and geocoded location. Returns: Results, ResultsOrderedBy, OrderDirection, PageNumber, PageSize, RecordsOnThisPage, TotalNumberOfRecords, NumberOfPages. Required: email_id. Journey reporting data older than 1 year is unavailable.

campaign_monitor_journey_emails_clicks

List subscriber link clicks in a particular journey email, with clicked URL, date/time, IP, and geocoded location. Returns: Results, ResultsOrderedBy, OrderDirection, PageNumber, PageSize, RecordsOnThisPage, TotalNumberOfRecords, NumberOfPages. Required: email_id. Journey reporting data older than 1 year is unavailable.

campaign_monitor_journey_emails_bounces

List subscribers whose emails bounced for a particular journey email, with bounce type and reason. Returns: Results, ResultsOrderedBy, OrderDirection, PageNumber, PageSize, RecordsOnThisPage, TotalNumberOfRecords, NumberOfPages. Required: email_id. Journey reporting data older than 1 year is unavailable.

campaign_monitor_journey_emails_unsubscribes

List subscribers who unsubscribed via a particular journey email, with date/time and originating IP. Returns: Results, ResultsOrderedBy, OrderDirection, PageNumber, PageSize, RecordsOnThisPage, TotalNumberOfRecords, NumberOfPages. Required: email_id. Journey reporting data older than 1 year is unavailable.

campaign_monitor_journey_events_publish

Publish a custom event for a subscriber to trigger Subscriber Activity Journeys (starts real journey sends). Required: client_id, ContactID.Email, EventName. Returns {EventID}.

get_single_campaign_monitor_transactional_smart_email_by_id

Get the details of a smart transactional email in Campaign Monitor by id. Returns: SmartEmailID, CreatedAt, Status, Name, Properties, AddRecipientsToList, Query, Sent, Bounces, Delivered, Opened, Clicked. Required: id.

campaign_monitor_transactional_smart_emails_send

Send a smart transactional email in Campaign Monitor by id. Returns an acceptance record per recipient with Status, MessageID, Recipient. Max 25 recipients across To, CC, BCC. Required: smart_email_id.

list_all_campaign_monitor_transactional_smart_emails

List smart transactional emails in Campaign Monitor, optionally filtered by status and client. Returns: ID, Name, CreatedAt, Status, Query, Sent, Bounces, Delivered, Opened, Clicked. Defaults to 'all' status.

campaign_monitor_transactional_classic_emails_send

Send a classic transactional email (sends real email). Required: From, Subject, Html or Text, ConsentToTrack; clientID query param when using an account-level key. Returns an array of {Status, MessageID, Recipient}.

list_all_campaign_monitor_transactional_classic_email_groups

List classic email groups in Campaign Monitor. Returns: Group, CreatedAt, Query, Sent, Bounces, Delivered, Opened, Clicked. clientID is required when authenticating with an account API key or OAuth.

list_all_campaign_monitor_transactional_statistics

List Campaign Monitor transactional delivery and engagement statistics for a date range, optionally filtered by group or smartEmailID. Returns aggregate counts (Sent, Delivered, Bounces, Opened, Clicked) and a Query object echoing the applied filters (Group, SmartEmailID, From, To, TimeZone). All query parameters are optional; group and…

campaign_monitor_transactional_messages_resend

Resend a previously sent Campaign Monitor transactional message by message id. Returns: Status, Recipient, MessageID, Query, Sent, Bounces, Delivered, Opened, Clicked. Required: message_id.

get_single_campaign_monitor_transactional_message_by_id

Get details for a Campaign Monitor transactional message by id. Returns: SmartEmailID, Query, Sent, Bounces, Delivered, Opened, Clicked. Required: id.

list_all_campaign_monitor_transactional_messages

List sent Campaign Monitor transactional messages (classic or smart). Returns: From, Group, SmartEmailID, Query, Sent, Bounces, Delivered, Opened, Clicked.

Why Truto

Why use Truto’s MCP server for Campaign Monitor

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 850+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with Campaign Monitor in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Campaign Monitor account

Use Truto’s frontend SDK to connect your customer’s Campaign Monitor account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Campaign Monitor

Truto’s Proxy API is a 1-to-1 mapping of the Campaign Monitor API. You call us, we call Campaign Monitor, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Campaign Monitor’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Campaign Monitor on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How does authentication work for Campaign Monitor through Truto?

Truto handles the OAuth and API key auth flows for Campaign Monitor so your end users can connect their account (or an agency master account) through a hosted or embedded flow. Your backend only deals with Truto's unified connection token.

Can we create and manage Campaign Monitor client sub-accounts via the integration?

Yes. The integration exposes full client lifecycle tools including create_a_campaign_monitor_client, update basics, update PAYG or monthly billing, transfer credits, and manage admins and primary contacts — ideal for agency and multi-tenant provisioning patterns.

Does the integration support custom fields on subscribers?

Yes. You can create, update, and delete custom fields on any list via create_a_campaign_monitor_custom_field and related tools, then set those field values when creating or updating subscribers.

How do we receive real-time events like unsubscribes or bounces?

Campaign Monitor supports list-level webhooks for subscribe, unsubscribe, update, and bounce events. You can create, activate, deactivate, and test webhooks through the integration, and Truto normalizes delivery to your endpoint.

Can we send transactional emails through this integration?

Yes. Both Smart Transactional emails (designed in the Campaign Monitor UI and triggered with a JSON payload) and Classic Transactional emails are supported via campaign_monitor_transactional_smart_emails_send and campaign_monitor_transactional_classic_emails_send.

What campaign engagement data can we pull back into our product?

You can retrieve recipients, opens, clicks, bounces, unsubscribes, spam complaints, email client usage, and summary stats for sent campaigns, plus equivalent per-email metrics for automated journeys.

How are Campaign Monitor's bulk operations like subscriber import handled?

The campaign_monitor_subscribers_import tool supports batching up to 1,000 subscribers per request. Truto manages pagination on list endpoints so you can iterate large audiences without writing custom logic.

Campaign Monitor

Get Campaign Monitor integrated into your app

Our team understands what it takes to make a Campaign Monitor integration successful. A short, crisp 30 minute call with folks who understand the problem.