---
title: Campaign Monitor API Integration on Truto
slug: campaignmonitor
category: Marketing Automation
canonical: "https://truto.one/integrations/detail/campaignmonitor/"
---

# Campaign Monitor API Integration on Truto



**Category:** Marketing Automation  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 113 tools for Campaign Monitor that AI agents can call directly.

- **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.

## How it works

1. **Link your customer's Campaign Monitor account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Campaign Monitor.** The Proxy API is a 1-to-1 mapping of the Campaign Monitor API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **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

- **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.

## FAQs

### 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.
