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 usUse Cases
Why integrate with Campaign Monitor
Common scenarios for SaaS companies building Campaign Monitor integrations for their customers.
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.
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.
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.
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.
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.
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.
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.
Engagement activity feed
Pipe campaign and journey opens, clicks, bounces, and unsubscribes — including geocoded data and timestamps — into your product's contact timeline.
In-app campaign composer
Let users browse templates, draft campaigns, send previews, schedule or send, and pull back summary stats without leaving your UI.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.