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

# Dotdigital API Integration on Truto



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

## MCP-ready AI tools

Truto exposes 314 tools for Dotdigital that AI agents can call directly.

- **list_all_dotdigital_campaigns** — List all dotdigital campaigns. Returns: id, name, subject, fromName, fromAddress, htmlContent, plainTextContent, replyAction, replyToAddress, isSplitTest, status. Max 1000 records per page.
- **create_a_dotdigital_campaign** — Create a new dotdigital campaign. Returns: id, name, subject, fromName, fromAddress, htmlContent, plainTextContent, replyAction, replyToAddress, isSplitTest, status, type. Required: name, subject, fromName, htmlContent, plainTextContent.
- **get_single_dotdigital_campaign_by_id** — Get a single dotdigital campaign by id. Returns: id, examples, name. Required: id.
- **update_a_dotdigital_campaign_by_id** — Update a dotdigital campaign by id. Returns: id, subject, fromName, fromAddress, htmlContent, plainTextContent, replyAction, replyToAddress, isSplitTest, status, examples, name. Required: id.
- **delete_a_dotdigital_campaign_by_id** — Delete a dotdigital campaign by id. Returns an empty 204 response on success. Required: id.
- **create_a_dotdigital_campaigns_split_test** — Create an email split test campaign in dotdigital by providing a campaign name plus content arrays that define one or more variations. Returns: id, name, subjects, fromNames, fromAddresses, htmlContents, plainTextContents, replyAction, replyToAddress, customReplyToAddress, status. Required: name, plainTextContents. Maximum 10 variations; any field being split-tested must have the same number of…
- **create_a_dotdigital_campaign_copy** — Copy a dotdigital campaign, returning the newly created duplicate. Returns: id, examples. Required: campaign_id.
- **create_a_dotdigital_campaigns_send** — Send a dotdigital campaign to one or more address books, segments, or contacts, either immediately or scheduled for a future date. Returns: id, campaignId, addressBookIds, contactIds, sendDate, splitTestOptions, status.
- **get_single_dotdigital_campaigns_send_by_id** — Get the status of a dotdigital campaign send by its send ID (GUID). Returns: id, campaignId, addressBookIds, contactIds, sendDate, splitTestOptions, status. Required: id.
- **create_a_dotdigital_campaigns_send_time_optimised** — Send a dotdigital campaign to one or more address books or contacts at the optimised time based on recipients' previous opens. Returns: id, campaignId, addressBookIds, contactIds, sendDate, splitTestOptions, status. Required: campaignID.
- **delete_a_dotdigital_campaign_attachment_by_id** — Remove a document attachment from a dotdigital campaign. Returns an empty 204 response on success. Required: campaign_id, id.
- **list_all_dotdigital_campaign_attachments** — List documents currently attached to a dotdigital campaign. Returns: id, name, fileName, fileSize, dateCreated, dateModified. Required: campaign_id.
- **create_a_dotdigital_campaign_attachment** — Add a document to a dotdigital campaign as an attachment. Returns the attached document object including id, name, fileName, fileSize, dateCreated, and dateModified. Required: campaign_id.
- **list_all_dotdigital_campaigns_filtereds** — List dotdigital campaigns with optional filters for type, tags, status, sent date, and scheduled date range. Returns: id, type. Max 1000 records per request.
- **list_all_dotdigital_campaign_with_details** — Get a dotdigital campaign with all its details by campaign id. Returns: id, type, examples. Required: campaign_id.
- **list_all_dotdigital_campaign_summaries** — Get a summary of reporting information for a specified dotdigital campaign. Returns: examples. Required: campaign_id.
- **list_all_dotdigital_campaign_opens** — List campaign opens for a specific dotdigital campaign. Returns: contactId, email, mailClient, mailClientVersion, ipAddress, userAgent, isHtml, isForward, dateOpened. Required: campaign_id.
- **list_all_dotdigital_activitie_opens** — List campaign opens for a specific contact in dotdigital. Returns: contactId, email, mailClient, mailClientVersion, ipAddress, userAgent, isHtml, isForward, dateOpened. Required: campaign_id, contact_id.
- **list_all_dotdigital_campaign_activities** — List dotdigital campaign activities for all contacts sent a campaign. Returns: contactId, email, numOpens, numPageViews, numClicks, numForwards, numEstimatedForwards, numReplies, dateSent, dateFirstOpened, dateLastOpened, firstOpenIp, unsubscribed, softBounced, hardBounced. Required: campaign_id.
- **get_single_dotdigital_campaign_activity_by_id** — Get a single dotdigital campaign activity by id. Returns: contactId, email, numOpens, numPageViews, numClicks, numForwards, numEstimatedForwards, numReplies, dateSent, dateFirstOpened, dateLastOpened, firstOpenIp, unsubscribed, softBounced, hardBounced. Required: campaign_id, id.
- **list_all_dotdigital_activities_since_dates** — List dotdigital campaign activity since a specified date for contacts who showed activity (opens, clicks, forwards). Returns: examples. Required: campaign_id, date. Max 1000 records per page.
- **list_all_dotdigital_campaign_clicks** — List link clicks for a dotdigital campaign. Returns: contactId, email, url, ipAddress, userAgent, dateClicked, keyword. Required: campaign_id.
- **list_all_dotdigital_campaign_clicks_with_groups** — List campaign link clicks with assigned link groups for a dotdigital campaign. Returns: contactId, email, url, ipAddress, userAgent, dateClicked, keyword, groups. Required: campaign_id. Max 1000 records per page.
- **list_all_dotdigital_clicks_since_dates** — List link clicks for a dotdigital campaign since a specified date. Returns: contactId, email, url, ipAddress, userAgent, dateClicked, keyword. Required: campaign_id, date (ISO 8601). Max 1000 records per request.
- **list_all_dotdigital_clicks_with_groups_since_dates** — List link clicks for a dotdigital campaign with assigned link groups, starting from a specified date. Returns: contactId, email, url, ipAddress, userAgent, dateClicked, keyword, groups. Required: campaign_id, date. The date must be in ISO 8601 format.
- **list_all_dotdigital_opens_since_dates** — List campaign opens in dotdigital recorded since a specified date. Returns: contactId, email, mailClient, mailClientVersion, ipAddress, userAgent, isHtml, isForward, dateOpened. Required: campaign_id, date.
- **list_all_dotdigital_campaign_address_books** — List address books and segments that a dotdigital campaign has ever been sent to. Returns: id, name, visibility, contacts. Required: campaign_id.
- **list_all_dotdigital_activitie_clicks** — List campaign link clicks for a contact in dotdigital. Returns: contactId, email, url, ipAddress, userAgent, dateClicked, keyword. Required: campaign_id, contact_id. Max 1000 records per request.
- **list_all_dotdigital_activitie_clicks_with_groups** — List dotdigital campaign link clicks with assigned link groups for a specific contact. Returns: contactId, email, url, ipAddress, userAgent, dateClicked, keyword, groups. Required: campaign_id, contact_id.
- **list_all_dotdigital_campaigns_with_activity_sinces** — List dotdigital sent campaigns that have had activity (e.g. clicks, opens) after a specified date. Returns: id, name, subject, fromName, fromAddress, htmlContent, plainTextContent, replyAction, replyToAddress, isSplitTest, status. Required: date in ISO 8601 format.
- **list_all_dotdigital_activitie_page_views** — List page views for a specific campaign contact in dotdigital. Returns: contactId, email, url, dateViewed. Required: campaign_id, contact_id. Max 1000 records per page.
- **list_all_dotdigital_page_views_since_dates** — List page views for a dotdigital campaign since a specified date. Returns: url. Required: campaign_id, date.
- **list_all_dotdigital_activitie_replies** — List campaign replies for a specific contact in dotdigital. Returns: contactId, email, fromAddress, toAddress, subject, message, isHtml, dateReplied, replyType. Required: campaign_id, contact_id.
- **list_all_dotdigital_activitie_roi_details** — List campaign ROI activity details for a specific contact in dotdigital. Returns: contactId, email, markerName, dataType, value, dateEntered. Required: campaign_id, contact_id.
- **list_all_dotdigital_roi_details_since_dates** — List dotdigital campaign ROI activity records since a specified date. Returns: contactId, email, markerName, dataType, value, dateEntered. Required: campaign_id, date.
- **list_all_dotdigital_campaign_social_bookmark_views** — List social bookmark views for a dotdigital campaign. Returns: contactId, email, bookmarkName, numViews. Required: campaign_id.
- **list_all_dotdigital_activitie_social_bookmark_views** — List social bookmark views for a specific contact within a dotdigital campaign. Returns: contactId, email, bookmarkName, numViews. Required: campaign_id, contact_id.
- **list_all_dotdigital_campaign_hard_bouncing_contacts** — List contacts who hard bounced when sent a particular dotdigital campaign. Returns: id, email, optInType, emailType, dataFields, status. Required: campaign_id.
- **list_all_dotdigital_campaign_split_tests** — Get the split test results for a dotdigital campaign by campaign_id. Returns the split test results including versions with subjectLine, fromName, fromAddress, version, winningVersion, resultsActual, resultsPercentage, and splitTestWinnerMetric. Required: campaign_id.
- **list_all_dotdigital_custom_from_addresses** — List custom from addresses available for use in dotdigital campaigns. Returns: id, email, _links, _items.
- **list_all_dotdigital_revenue_since_dates** — Get campaign revenue data collated since a specified date in dotdigital. Returns: campaignID, dateSent, currency, revenue, numOrders, conversionRate. Required: campaign_id, date.
- **list_all_dotdigital_activitie_revenues** — Get campaign revenue for a specific contact in dotdigital. Returns: campaignID, dateSent, currency, revenue, numOrders, conversionRate. Required: campaign_id, contact_id.
- **list_all_dotdigital_campaigns_metrics** — List dotdigital campaign metrics between two UTC dates for all sent campaigns with activity. Returns: campaignId, campaignName, campaignType, sent, delivered, uniqueOpens, clicks, revenue, and percentage metrics per campaign. Required: startDate, endDate. Up to 1000 records per request via the select parameter.
- **list_all_dotdigital_ecommerce_orders** — List dotdigital ecommerce orders placed since a specified date. Returns each order's id, email, contactId, items, orderTotal, orderDate, currency, and delivery/billing address details. Required: fromDate (ISO 8601 date; time component is ignored). Max 1000 records per page.
- **list_all_dotdigital_segments** — List all segments in dotdigital. Returns each segment's id, name, and the number of contacts it contains. No required parameters.
- **get_single_dotdigital_segments_refresh_by_id** — Get the refresh progress for a dotdigital segment by id. Returns: id, status. Required: id. The source documents only these two fields for this endpoint.
- **create_a_dotdigital_segments_refresh** — Trigger a refresh of a dotdigital segment. Returns: id, status. The response is asynchronous (202 Accepted). Required: refresh_id.
- **create_a_dotdigital_programs_enrolment** — Create a program enrolment in dotdigital by enrolling contacts and/or address books into a program. Processing happens asynchronously; use the returned id to track progress. Returns: id, programId, status, dateCreated, contacts, addressBooks. Required: programId. At least one contact or address book must be supplied; contacts are limited to 25 and address books to 10.
- **get_single_dotdigital_programs_enrolment_by_id** — Get a single dotdigital program enrolment by id. Returns: id, programId, status, dateCreated, contacts, addressBooks. Required: id.
- **list_all_dotdigital_programs** — List all dotdigital programs in your account. Returns: id, name, status, dateCreated. Select up to 1000 records per request.
- **get_single_dotdigital_program_by_id** — Get a single dotdigital program by its numeric id. Returns: id, name, status, dateCreated. Required: id.
- **list_all_dotdigital_enrolment_report_faults** — List dotdigital contacts that were not successfully enrolled in a program enrolment. Returns a CSV report with columns: Id, Email, TelephoneNumber, Reason. Required: enrolment_id. The report is unavailable while the enrolment is still processing.
- **list_all_dotdigital_sms_campaigns** — List SMS campaigns in dotdigital. Returns each campaign with id, name, message, sendingIdentity, sendingIdentityId, toggleShortLinks, and status. Max 1000 records per page.
- **create_a_dotdigital_sms_campaign** — Create a new SMS campaign in dotdigital. Returns the created campaign including id, name, message, sendingIdentity, sendingIdentityId, toggleShortLinks, and status. Required: name, message.
- **get_single_dotdigital_sms_campaign_by_id** — Get a single SMS campaign by id in dotdigital. Returns: id, name, message, sendingIdentity, sendingIdentityId, toggleShortLinks, status. Required: id.
- **update_a_dotdigital_sms_campaign_by_id** — Update an existing SMS campaign in dotdigital, as long as it has not been sent. Returns: id, name, message, sendingIdentity, sendingIdentityId, toggleShortLinks, status. Required: id, name, message.
- **delete_a_dotdigital_sms_campaign_by_id** — Delete an SMS campaign by id in dotdigital. Returns an empty 200 response on success. Required: id.
- **create_a_dotdigital_campaigns_copy** — Create a copy of an existing SMS campaign in dotdigital. Returns: id, name, message, sendingIdentity, sendingIdentityId, toggleShortLinks, status. Required: campaignId, copyName. Copy name limited to 255 characters; deleted campaigns cannot be copied.
- **create_a_dotdigital_sms_messages_send_to** — Send a single SMS message to a dotdigital contact by telephone number in E.164 format. Returns an empty 204 response on success. Required: telephone_number, message.
- **create_a_dotdigital_email** — Send a transactional email to one or more recipients in dotdigital. Returns an empty 200 response on success. Required: toAddresses, subject. Max 100 recipients per address field; attachments up to 15 MB each.
- **create_a_dotdigital_email_batch** — Send batch transactional emails to multiple recipients in dotdigital. Returns an array of results per email with index, failureCode, and failureReason. Required: toAddresses and subject per email item. Max 100 recipients per address field; metadata max 1500 characters; attachments max 15 MB.
- **create_a_dotdigital_email_triggered_campaign** — Send a transactional email in dotdigital using a triggered campaign with recipient addresses, personalization values, and optional attachments. Returns an empty 200 response on success. Required: toAddresses, campaignId. Max 100 recipients per address field; attachments up to 15 MB each; metadata limited to 1500 characters.
- **create_a_dotdigital_triggered_campaign_batch** — Send batch transactional emails in dotdigital using triggered campaigns. Returns an array of per-email results including index, failureCode, and failureReason (failure fields appear only for failed items). Required: a JSON array body where each item must include toAddresses and campaignId. Max 100 addresses per email; attachments up to 15 MB each; metadata limited to 1500 characters.
- **list_all_dotdigital_stats_since_dates** — List dotdigital transactional email reporting statistics for a specified time period. Returns: startDate, endDate, numSent, numDelivered, numOpens, numClicks, numIspComplaints, numBounces. Required: date.
- **list_all_dotdigital_image_folders** — List dotdigital image folders as a tree structure. Returns each folder with id, name, and childFolders (nested recursively).
- **get_single_dotdigital_image_folder_by_id** — Get a single dotdigital image folder by id. Returns: id, name, childFolders. Required: id. The root folder id is 0.
- **create_a_dotdigital_image_folder** — Create a new image folder within an existing dotdigital image folder. Returns: id, name, childFolders. Required: image_folder_id (parent folder id, root is 0) and name (max 20 characters, alphanumeric with hyphens and underscores only).
- **list_all_dotdigital_image_folder_images** — List images in a dotdigital image folder. Returns: url, filename, mimeType, sizeInBytes, widthInPixels, heightInPixels, contentTags. Required: image_folder_id.
- **create_a_dotdigital_image_folder_image** — Upload a new image to a dotdigital image folder using a JSON body with Base64-encoded file data. Returns: id, name, path. Required: image_folder_id, fileName, data. Permitted file types: GIF, JPEG, PNG.
- **list_all_dotdigital_contacts_scores** — List contact scoring for all contacts in a dotdigital account. Returns: contactId, email, dateModified, scoreLabel, score, engagement, suitability. The select parameter controls how many records to retrieve (1–1000, defaults to 1000).
- **list_all_dotdigital_score_modified_sinces** — List dotdigital contacts whose contact scoring data has been modified since a given UTC date-time. Returns: contactId, email, dateModified, scoreLabel, score, engagement, suitability. Required: date.
- **list_all_dotdigital_contact_scores** — Get contact scoring information for a specific dotdigital contact. Returns: contactId, email, dateModified, scoreLabel, score, engagement, suitability. Required: contact_identifier (either the contact's email address or numeric contact ID).
- **list_all_dotdigital_products_recommendations** — List all product recommendations in dotdigital. Returns: id, dateLastRefreshed, dateModified, dateLastUsed, name, type, status, fallbackRecommendationId, revenue.
- **list_all_dotdigital_account_infos** — Get a summary of the current dotdigital account status, including email and SMS send credits, premium wallet balance, API call usage in the last hour and remaining, managed users list, account name, main email, main mobile number, API locale, API endpoint, currency code, campaign email MTA pool, clock display setting, and IANA timezone. Returns: id, properties.
- **list_all_dotdigital_server_times** — Get the UTC server time as set on dotdigital's servers. Returns the current date and time in ISO-8601 format (e.g., 2021-09-24 09:21:55.661571+00:00).
- **create_a_dotdigital_accounts_empty_recycle_bin** — Empty the recycle bin in dotdigital, permanently deleting everything in it. Returns an empty 202 response on success.
- **list_all_dotdigital_templates** — List all email campaign templates in dotdigital. Returns: id, name, subject, fromName, htmlContent, plainTextContent, replyAction, replyToAddress.
- **create_a_dotdigital_template** — Create a new email campaign template in dotdigital. Returns the created template including id, name, subject, fromName, htmlContent, plainTextContent, replyAction, and replyToAddress. Required: name, subject, fromName, htmlContent, plainTextContent.
- **get_single_dotdigital_template_by_id** — Get a single email campaign template in dotdigital by id. Returns: id, example, name. Required: id.
- **update_a_dotdigital_template_by_id** — Update an email campaign template in dotdigital by id. Returns the updated template including id, name, subject, fromName, htmlContent, plainTextContent, replyAction, and replyToAddress. Required: id, name, subject, fromName, htmlContent, plainTextContent.
- **list_all_dotdigital_data_fields** — List all contact data fields in the dotdigital account. Returns: name, type, visibility, defaultValue, _links, _items.
- **create_a_dotdigital_data_field** — Create a contact data field in the dotdigital account. Returns: name, type, visibility, defaultValue. Required: name, type. The field name must be alphanumeric (hyphens and underscores allowed) with a maximum of 20 characters.
- **dotdigital_data_fields_bulk_delete** — Delete a contact data field in the dotdigital account by name. Returns: dependencies, result. Required: name.
- **create_a_dotdigital_document_folder** — Create a new document folder inside an existing dotdigital folder. Returns: id, name, childFolders. Required: document_folder_id, name. The folder name must be up to 20 characters, alphanumeric only with hyphens and underscores permitted.
- **list_all_dotdigital_document_folders** — List dotdigital document folders as a tree structure. Returns each root folder with id, name, and nested childFolders.
- **list_all_dotdigital_document_folder_documents** — List all uploaded documents in a dotdigital document folder. Returns: id, name, fileName, fileSize, dateCreated, dateModified. Required: document_folder_id.
- **create_a_dotdigital_document_folder_document** — Upload a document to a dotdigital document folder. Returns: id, name, childFolders. Required: document_folder_id. Only one file may be uploaded per call.
- **get_single_dotdigital_contacts_deletion_by_id** — Get the progress of a bulk contact deletion in dotdigital by deletion request id. Returns: Id, Status. Required: id (the deletion request id returned from a previous bulk contact deletion call).
- **list_all_dotdigital_contacts** — List dotdigital contacts with optional filtering by created date, modified date, list, or segment, and control which data fields and associated data sets are returned. Returns each contact's id, email, optInType, emailType, dataFields, and status. Data is returned in ascending order. The ~created and ~modified filters are mutually exclusive; the ~listId and ~segmentId filters are mutually…
- **create_a_dotdigital_contact** — Create a contact in dotdigital; fails with a 409 if the contact's identifiers already exist in the account. Returns: id, email, optInType, emailType, dataFields, status. Required: email.
- **update_a_dotdigital_contact_by_id** — Replace a dotdigital contact entirely by identifier and value. Returns: id, email, optInType, emailType, dataFields, status. Required: identifier, id. This replaces the entire contact; use PATCH to update select fields only. It is not possible to modify the contactId field.
- **delete_a_dotdigital_contact_by_id** — Delete a dotdigital contact by identifier type and value. Returns an empty 204 response on success. Required: identifier, id.
- **get_single_dotdigital_contact_by_id** — Get a dotdigital contact's details by identifier type and value. Returns: id, email, optInType, emailType, dataFields, status. Required: identifier, id.
- **dotdigital_contacts_partial_update** — Import a single contact in dotdigital by identifier type and value, updating an existing contact with only the fields passed or creating a new one if not found. Returns: id, email, optInType, emailType, dataFields, status. Required: identifier, id. The merge_option parameter controls how new data merges into existing contacts (defaults to overwrite). It is not possible to modify the contactId…
- **create_a_dotdigital_contacts_with_consent** — Create or update a dotdigital contact along with their consent information. Returns: contact, consentFields. Required: contact (with email).
- **create_a_dotdigital_contacts_with_consent_and_preference** — Create or update a dotdigital contact with consent data and marketing preferences. Returns the created contact (id, email, optInType, emailType, status), consentFields, and preferences with opt-in states. Required: contact (with email).
- **create_a_dotdigital_contacts_import_collection** — Bulk create or update dotdigital contacts from a JSON collection, optionally adding them to address books. Returns: id, status. Required: addressBookIds and contacts. The import is asynchronous — the response status will be 'NotFinished' until processing completes.
- **create_a_dotdigital_contacts_import** — Bulk import contacts in dotdigital from a base64-encoded file. Returns: id, status. Required: filename, data.
- **get_single_dotdigital_contacts_import_by_id** — Get the status of a dotdigital contacts import request by id. Returns: id, status. Required: id.
- **dotdigital_contacts_imports_bulk_update** — Import a collection of contacts in dotdigital, creating new contacts and updating existing ones. Async operation — poll the get import status endpoint for completion. Returns: id. Required: contacts.
- **list_all_dotdigital_reports** — Get a dotdigital contact import report with statistics on successfully and unsuccessfully imported contacts. Returns: newContacts, updatedContacts, globallySuppressed, invalidEntries, duplicateEmails, blocked, unsubscribed, hardBounced, softBounced, ispComplaints, mailBlocked, domainSuppressed, pendingDoubleOptin, failures, suppressedContacts. Required: import_id.
- **list_all_dotdigital_report_faults** — List contact import records that were not successfully imported in dotdigital. Returns each faulted record with Reason, email, firstname, fullname, gender, lastname, and postcode. Required: import_id.
- **dotdigital_contact_with_consent_and_preferences_bulk_update** — Update a dotdigital contact by id with consent information and/or marketing preferences. Returns: contact (id, email, status), consentFields, preferences (id, publicName, isOptedIn). Required: id, contact (email is required within contact).
- **list_all_dotdigital_contact_with_consents** — Get a dotdigital contact with their consent information by contact identifier (id or email address). Returns the contact object including id, email, optInType, emailType, dataFields, status, and the consentFields array. Required: contact_identifier.
- **dotdigital_contact_with_consents_bulk_update** — Update a dotdigital contact by id with consent information. Returns the updated contact object including id, email, optInType, emailType, dataFields, status, and the consentFields array. Required: id, contact (with email).
- **list_all_dotdigital_contact_address_books** — List dotdigital address books that a contact belongs to. Returns: id, name, visibility, contacts. Required: contact_id.
- **list_all_dotdigital_contacts_counts** — Get the total number of contacts in the dotdigital account. Returns: a single integer representing the count of all contacts (e.g., 42525). No required parameters.
- **list_all_dotdigital_contacts_created_sinces** — List dotdigital contacts created after a specified date. Returns each contact's id, email, optInType, emailType, dataFields, and status. Required: date.
- **list_all_dotdigital_contacts_modified_sinces** — List dotdigital contacts modified since a specified date within an address book. Returns: id, email, optInType, emailType, dataFields, status. Required: address_book_id, date. The select parameter accepts values between 1 and 1000.
- **create_a_dotdigital_contacts_transactional_data** — Add a single piece of transactional/insight data to a dotdigital contact or account in a named collection. Returns: key, contactIdentifier, json. Required: collection_name, key, contactIdentifier, json.
- **delete_a_dotdigital_contacts_transactional_data_by_id** — Delete a piece of transactional data from a dotdigital contact by key within a named collection. Returns an empty 204 response on success. Required: collection_name, id.
- **update_a_dotdigital_contacts_transactional_data_by_id** — Replace a piece of dotdigital transactional/insight data by key within a collection. Returns: _links, _items. Required: collection_name, id, json.
- **get_single_dotdigital_contacts_transactional_data_by_id** — Get a single piece of dotdigital transactional/insight data by key within a collection. Returns: _links, _items. Required: collection_name, id.
- **create_a_dotdigital_transactional_data_import** — Bulk add transactional/insight data to contacts in a dotdigital transactional data collection asynchronously. Returns: id, status. Required: collection_name, and a body array of insight data items each containing key, contactIdentifier, and json. Poll the returned id via the get method to check import status.
- **get_single_dotdigital_transactional_data_import_by_id** — Get the import status of a previously started dotdigital transactional data import by id. Returns: id, status. Required: id.
- **list_all_dotdigital_contact_transactional_datas** — List transactional data records for a dotdigital contact in a specific collection. Returns up to 100 records sorted by transactional record key, each containing key, contactIdentifier, and json. Required: selector, collection_name.
- **dotdigital_contact_transactional_datas_bulk_delete** — Delete all transactional data for a dotdigital contact in a specific collection, identified by email or contact ID. Returns an empty 204 response on success. Required: selector, collection_name.
- **list_all_dotdigital_transactional_datas** — List dotdigital transactional/insight data records from a named collection at account level. Returns: key, contactIdentifier, json. Required: collection_name. Max 100 records per page.
- **list_all_dotdigital_contacts_transactional_data_collections** — List transactional/insight data collections at account and contact level in dotdigital. Returns: Id, Name. Up to 1000 records per page.
- **dotdigital_transactional_data_empties_bulk_update** — Empty a dotdigital transactional data collection by removing all records from the specified collection. Returns an empty 204 response on success. Required: collection_name.
- **list_all_dotdigital_address_book_campaigns** — List campaigns sent to a dotdigital address book or segment. Returns: id, name, subject, fromName, fromAddress, htmlContent, plainTextContent, replyAction, replyToAddress, isSplitTest, status. Required: address_book_id.
- **list_all_dotdigital_address_books** — List all address books in dotdigital. Returns: id, name, visibility, contacts.
- **create_a_dotdigital_address_book** — Create a new address book in dotdigital. Returns: id, name, visibility, contacts. Required: name.
- **get_single_dotdigital_address_book_by_id** — Get a single dotdigital address book by id. Returns: id, name, visibility, contacts. Required: id.
- **update_a_dotdigital_address_book_by_id** — Update a dotdigital address book by id. Returns: id, name, visibility, contacts. Required: id, name.
- **delete_a_dotdigital_address_book_by_id** — Delete a dotdigital address book by id. Returns an empty 204 response on success. Required: id.
- **list_all_dotdigital_address_books_privates** — List all private address books (private lists) in dotdigital. Returns each address book's id, name, visibility, and contact count.
- **list_all_dotdigital_address_books_publics** — List all public address books in dotdigital. Returns: id, name, visibility, contacts.
- **list_all_dotdigital_contacts_unsubscribed_sinces** — List dotdigital contacts who have unsubscribed from a specific address book since a given date. Returns each record with suppressedContact (id, email, optInType, emailType, dataFields, status), dateRemoved, and reason. Required: id, date.
- **create_a_dotdigital_contacts_unsubscribe** — Unsubscribe a contact from the dotdigital account. Returns the suppressed contact object including id, email, optInType, emailType, dataFields, and status, plus dateRemoved and reason. Required: email.
- **create_a_dotdigital_contacts_resubscribe** — Resubscribe a previously unsubscribed contact. Returns the contact and a resubscribe status of ContactAdded, ContactChallenged, ContactCannotBeUnsuppressed or NotAvailableInThisVersion. A status of ContactChallenged means an automated confirmation email was sent. Contact data fields can be updated as part of the resubscribe. Required in body: unsubscribedContact.
- **create_a_dotdigital_contacts_resubscribe_with_no_challenge** — Resubscribe a previously unsubscribed contact to a dotdigital address book without sending a challenge email. Returns a contact object (id, email, optInType, emailType, dataFields, status) and a result status. Required: id (address book ID) and unsubscribedContact containing email.
- **delete_a_dotdigital_address_book_contact_by_id** — Delete a contact from a dotdigital address book by id. Returns an empty 204 response on success. Required: address_book_id, id.
- **list_all_dotdigital_address_book_contacts** — List contacts in a dotdigital address book or segment. Returns: id, email, optInType, emailType, dataFields, status. Required: address_book_id.
- **create_a_dotdigital_address_book_contact** — Add a contact to a dotdigital address book. Returns the created contact object including id, email, optInType, emailType, dataFields, and status. Required: address_book_id, email.
- **delete_a_dotdigital_contacts_delete_by_id** — Delete multiple contacts in dotdigital asynchronously using whichever identifier you wish. Returns: id, status. Required: body (array of 1 to 5000 contact identifiers). Max 5000 items per request.
- **get_single_dotdigital_contacts_delete_by_id** — Get the status of a dotdigital delete contacts job and its results if complete. Returns: id. Required: id.
- **delete_a_dotdigital_contacts_delete_all_by_id** — Delete all contacts from a dotdigital address book or list. Returns: id, status. Required: address_book_id. The operation is asynchronous and returns a 202 Accepted response with a job id for tracking.
- **list_all_dotdigital_contacts_with_preferences** — List dotdigital contacts who are opted into a given preference and belong to a given address book. Returns: id. Required: address_book_id, preference_id.
- **get_single_dotdigital_contacts_with_preference_by_id** — Get dotdigital contacts who are opted into a given preference by preference id. Returns: id, email. Required: id.
- **list_all_dotdigital_with_preference_opt_ins_sinces** — List up to 1000 dotdigital contacts with a specific preference opt-in modified since a given date. Returns: contact, marketingPreferenceOptIns. Required: preference_id, date, addressBookId. Limited to top 1000 results.
- **create_a_dotdigital_import_with_merge_option** — Bulk import contacts into a dotdigital address book with a specified merge option by uploading a base64-encoded file. Returns: id, status. Required: address_book_id, merge_option, filename, data. The merge_option accepts 0 (overwrite all data fields), 1 (skip blank values), or 2 (skip populated fields). Processing is asynchronous — the response returns a job id with status NotFinished.
- **list_all_dotdigital_surveys** — List all dotdigital survey forms in the account. Returns: id, url. Optional filter: assignedToAddressBookOnly. Max 500 results per request.
- **get_single_dotdigital_survey_by_id** — Get a single dotdigital survey form by its integer id. Returns: id, url, example. Required: id.
- **list_all_dotdigital_surveys_with_activity_sinces** — List dotdigital surveys that have had activity since the specified date. Returns each survey with its id, name, url, state, response totals, completion time statistics, and traffic source breakdowns. Required: date.
- **list_all_dotdigital_survey_fields** — List the pages and fields of a dotdigital survey form. Each page has an id, name, and a fields array containing field definitions with type, text, isRequired, choices, and contact data field mapping. Required: survey_id.
- **list_all_dotdigital_survey_responses** — List all responses submitted for a specific dotdigital survey form. Returns: id, email, started, dateStarted, complete, dateCompleted, givenAnswers. Required: survey_id.
- **list_all_dotdigital_responses_with_activity_sinces** — List dotdigital survey responses that have changed since a specified date. Returns: id, email, started, dateStarted, complete, dateCompleted, givenAnswers. Required: survey_id, date. The date must be in ISO 8601 format.
- **dotdigital_contacts_suppress_contacts_bulk_update** — Suppress a batch of contacts from a dotdigital account, identifying each by id or email address. Returns: suppressed, notFound.
- **list_all_dotdigital_contacts_suppressed_sinces** — List suppressed dotdigital contacts since a given date, along with the reason for each suppression. Returns: suppressedContact (with id, email, optInType, emailType, status), dateRemoved, and reason. Required: date (ISO 8601 date format).
- **list_all_dotdigital_preferences** — List all dotdigital preferences and preference categories. Returns: id, publicName, privateName, isPreference, order, isPublic, categoryId, preferenceCount, created, lastModified, preferences.
- **create_a_dotdigital_preference** — Create a new preference or preference category in dotdigital. Returns: id, publicName, privateName, isPreference, order, isPublic, categoryId, preferenceCount, created, lastModified. Required: publicName, privateName.
- **update_a_dotdigital_preference_by_id** — Update a dotdigital preference or preference category by id. Returns: id, publicName, privateName, isPreference, order, isPublic, categoryId, lastModified. Required: id, publicName, privateName.
- **delete_a_dotdigital_preference_by_id** — Delete a dotdigital preference or preference category by id. Returns a plain text confirmation message. Required: id.
- **list_all_dotdigital_preferences_modified_sinces** — List dotdigital preferences and preference categories that have been modified since a given date. Returns each item with id, publicName, privateName, isPreference2, isPublic, categoryId, preferenceCount, created, lastModified, and a nested preferences array. Required: date.
- **list_all_dotdigital_contact_preferences** — List all dotdigital preference categories for a contact and indicate which individual preferences the contact is opted into. Returns: id, example. Required: contact_identifier.
- **dotdigital_contact_preferences_bulk_update** — Update a dotdigital contact's preference opt-ins by sending an array of preference and preference category objects. Returns: value. Required: contact_identifier.
- **list_all_dotdigital_whatsapp_clouds** — List all Cloud WhatsApp Channel configurations for a dotdigital API Space. Returns WhatsApp Cloud channel configuration objects with fields defined by the upstream schema. Filter by configurationStatus, wabaIds, phoneNumbers, or include deleted channels.
- **create_a_dotdigital_whatsapp_cloud** — Create a new Cloud WhatsApp Channel configuration in dotdigital. Returns an empty 202 Accepted response on success.
- **get_single_dotdigital_whatsapp_cloud_by_id** — Get a WhatsApp Cloud Channel configuration by id from dotdigital. Returns: phoneNumber, wabaId, configurationStatus. Required: id.
- **dotdigital_whatsapp_clouds_bulk_delete** — Delete a WhatsApp Cloud Channel number configuration in dotdigital permanently. Returns an empty 204 response on success. Required: phone_number. This action cannot be undone.
- **create_a_dotdigital_cloud_register** — Register a WhatsApp Cloud configuration for a phone number in dotdigital. Returns a registration result object indicating the outcome of the cloud registration attempt. Required: phone_number. The phone number must be in E164 format and associated with a WhatsApp Business Messaging account.
- **list_all_dotdigital_businessaccount_templates** — List WhatsApp templates for a specific WhatsApp Business Account (WABA) in dotdigital. Returns the collection of WhatsApp templates associated with the account. Required: waba_id.
- **get_single_dotdigital_businessaccount_template_by_id** — Get a WhatsApp template for a specific WABA in dotdigital by template id. Returns the WhatsApp template object including id and template-specific attributes defined in the upstream whatsAppTemplate schema. Required: waba_id, id.
- **list_all_dotdigital_analytics_conversationmessages** — List dotdigital conversation message analytics aggregated by time period. Returns the count of sent, delivered, and read messages for each period bucket. Required: from, to.
- **list_all_dotdigital_analytics_chats** — List dotdigital chat analytics for a specific time period, optionally filtered by team or agent and aggregated by time-based or team/agent dimensions. Returns an array of chat analytics records with aggregation-dependent attributes whose fields vary based on the `by` criteria. Required: from, to.
- **list_all_dotdigital_chats_lives** — List live chat analytics from dotdigital, optionally filtered by a specific team and aggregated by team or agent. Returns an array of live chat analytics records, each containing attributes with the aggregated metrics. The exact field set is defined by the upstream liveChatAnalytics OpenAPI schema, which is not fully resolved in the discovered source.
- **list_all_dotdigital_analytics_messages** — List dotdigital message analytics aggregated over a date range. Returns: counts of sent, delivered, read, inbound, and failed messages plus segments used. Required: from, to.
- **list_all_dotdigital_messages_metrics** — List dotdigital message metrics for a specific time period, optionally aggregated by hour, day, month, year, alltime, system, or recipient country code. Returns an array of message metric objects per the ApiProfilingAnalytics schema with schema-specific fields. Required: from, to.
- **list_all_dotdigital_analytics_sessions** — List session analytics from dotdigital CPaaS for a given time range, optionally aggregated by hour, day, month, or year. Returns, for each aggregation period, the count of started sessions and the count of explicitly ended sessions. Required: from, to.
- **list_all_dotdigital_sms_trackings** — List SMS URL tracking analytics from dotdigital, aggregated by time period. Returns: period, sentUrls, clicks. Required: from, to.
- **list_all_dotdigital_sms_verifies** — List SMS verify analytics from dotdigital, aggregated over a time range. Returns an array of analytics records with counts of notVerified, verified, expired, and locked verify calls. Required: from, to.
- **list_all_dotdigital_sms_inbounds** — List inbound SMS analytics from dotdigital aggregated over a UTC date range. Returns: datetime, received. Required: from, to.
- **list_all_dotdigital_sms_outbounds** — Retrieve outbound SMS analytics from dotdigital, aggregated by time period. Returns an array of analytics records each containing period, submitted, delivered, filtered, and undeliverable message counts. Required: from, to.
- **list_all_dotdigital_whatsapp_conversations** — List WhatsApp conversation analytics in dotdigital, aggregated by time period with optional breakdowns by category, direction, type, country, and phone number. Returns: period, conversation, conversation_category, conversation_direction, conversation_type, country, phone. Required: from, to.
- **list_all_dotdigital_whatsapp_dailymessagingusages** — List WhatsApp business-initiated conversation analytics for the last 24 hours in dotdigital. Returns an array of daily messaging usage objects containing the counts of marketing, utility, and authentication conversations. Optional: wabaIds.
- **get_single_dotdigital_cpaas_chat_by_id** — Get a specific dotdigital CPaaS chat by id. Returns the full Chat object including its id. Required: id. Optionally set includeDeleted to true to retrieve soft-deleted chats.
- **update_a_dotdigital_cpaas_chat_by_id** — Update a dotdigital CPaaS chat by id. Returns: id. Required: id. An optional if-match ETag header supports optimistic concurrency control.
- **delete_a_dotdigital_cpaas_chat_by_id** — Delete a dotdigital chat by id. Returns an empty 204 response on success. Required: id.
- **list_all_dotdigital_cpaas_chats** — List dotdigital chats with optional filtering by profile, scope, and inclusion of closed or deleted chats. Returns: id.
- **create_a_dotdigital_cpaas_chat** — Create a new chat in dotdigital CPaaS. Returns the created chat object including id, created_at, and updated_at. A JSON request body with chat details is required. Returns 409 if the chat already exists.
- **dotdigital_cpaas_chats_bulk_update** — Assign a dotdigital chat to an agent by providing assignment details in the request body. Returns the updated chat object including its id. Required: chat_id.
- **dotdigital_chat_closes_bulk_update** — Close a dotdigital CPaaS chat by chat_id. Returns the updated chat object including its id. Required: chat_id.
- **dotdigital_chat_channels_bulk_update** — Change the channel for an existing dotdigital chat. Returns the updated chat object including its id. Required: chat_id. An optional if-match ETag header can be supplied for optimistic concurrency control.
- **create_a_dotdigital_chat_form** — Send a form to a dotdigital chat by chat id. The request body contains options relating to sending a form to a chat. Returns an empty 200 response on success. Required: chat_id.
- **create_a_dotdigital_chat_typing** — Send a typing indicator for a dotdigital chat, signalling that the caller is currently typing in that chat. Returns an empty 204 response on success. Required: chat_id.
- **dotdigital_chat_typings_bulk_delete** — Stop the typing indicator for a dotdigital chat, signalling that the caller has stopped typing in that chat. Returns an empty 204 response on success. Required: chat_id.
- **list_all_dotdigital_chat_participants** — List participants of a specific dotdigital chat. Returns each participant's id and attributes. Required: chat_id.
- **list_all_dotdigital_chat_configs** — Retrieve the chat configuration for a dotdigital apiSpace. Returns: attributes. No caller-supplied parameters required; the apiSpace is determined by authentication context.
- **get_single_dotdigital_config_team_by_id** — Get the members of a dotdigital chat team by id. Returns the team member details object including id and attributes, where attributes contains the member fields defined by the dotdigital teamMembers schema. Required: id.
- **delete_a_dotdigital_config_team_by_id** — Delete the configuration for a dotdigital chat team by id. Returns an empty 200 response on success. Required: id.
- **dotdigital_team_app_messagings_bulk_update** — Update the App Messaging configuration for a team in dotdigital. Returns the updated appMessagingConfig object. Required: team_id.
- **dotdigital_team_app_messagings_bulk_delete** — Delete the App Messaging configuration for a team in dotdigital. Returns an empty 204 response on success. Required: team_id.
- **dotdigital_team_settings_bulk_update** — Update general settings for a dotdigital chat team. Returns the full updated team settings object as defined in the upstream settings schema. Required: team_id.
- **dotdigital_team_settings_bulk_delete** — Remove the general settings for a dotdigital chat team. Returns an empty 200 response on success. Required: team_id.
- **create_a_dotdigital_messages_statusupdate** — Post message status updates back to a dotdigital conversation. Accepts a JSON array of MessageStatusUpdate objects describing the per-message status changes. Required: conversation_id. Returns a 200 success acknowledgment confirming the status updates were received, with no response body.
- **list_all_dotdigital_cpaas_presences** — Retrieve presence settings for agent profiles in dotdigital CPaaS by profile id, optionally filtering by current status. Returns: id. Required: id.
- **list_all_dotdigital_presence_appmessagings** — List App Messaging presence settings for user profiles in dotdigital by profile id. Returns the presence information for each requested profile. Required: id.
- **create_a_dotdigital_cpaas_content** — Upload a file to dotdigital CPaaS content storage. Returns the uploaded file object including its id, created_at, and updated_at. Required: a request body with the file details and data.
- **get_single_dotdigital_cpaas_content_by_id** — Retrieve a file from dotdigital CPaaS content storage by id. Returns the file object including its id, created_at, and updated_at. Required: id.
- **delete_a_dotdigital_cpaas_content_by_id** — Delete a file from dotdigital CPaaS content storage by id. Returns an empty 204 response on success. Required: id.
- **get_single_dotdigital_cpaas_conversation_by_id** — Get a dotdigital CPaaS conversation by id. Returns the conversation object including its id. Required: id.
- **update_a_dotdigital_cpaas_conversation_by_id** — Update a dotdigital CPaaS conversation by id. Returns the updated conversation object including its id. Required: id.
- **delete_a_dotdigital_cpaas_conversation_by_id** — Delete a dotdigital CPaaS conversation by id. Returns an empty 204 response on success. Required: id.
- **list_all_dotdigital_cpaas_conversations** — List dotdigital CPaaS conversations, optionally filtered by scope, profile participation, or deleted status. Returns: id.
- **create_a_dotdigital_cpaas_conversation** — Create a new dotdigital CPaaS conversation. Returns the created conversation object including its id.
- **create_a_dotdigital_conversation_typing** — Indicate that the caller is typing in a dotdigital conversation. Returns an empty 204 response on success. Required: conversation_id.
- **dotdigital_conversation_typings_bulk_delete** — Indicate that the caller has stopped typing in a dotdigital conversation. Returns an empty 204 response on success. Required: conversation_id.
- **list_all_dotdigital_conversation_participants** — List all participants in a dotdigital conversation. Returns: id. Required: conversation_id.
- **create_a_dotdigital_conversation_participant** — Add a list of participants to a dotdigital conversation by sending an array of participant objects. Returns an empty 201 response on success. Required: conversation_id.
- **dotdigital_conversation_participants_bulk_delete** — Remove a list of participants from a dotdigital conversation by their profile ids. Returns an empty 204 response on success. Required: conversation_id, id.
- **list_all_dotdigital_sms_dedicated_numbers** — List SMS dedicated phone numbers allocated to your dotdigital account. Returns: number, countryIsoCode.
- **list_all_dotdigital_sms_shortcodes** — List SMS shortcodes in dotdigital. Returns: number, keyword, countryIsoCode.
- **list_all_dotdigital_sms_keywords** — List SMS keywords in dotdigital. Returns: number, keyword, countryIsoCode.
- **create_a_dotdigital_facebook_state** — Generate Facebook metadata to help attach a Facebook Messenger ID to a dotdigital CPaaS profile. Returns an encoded string token used for the association. Required: apiSpaceId, profileId.
- **get_single_dotdigital_data_firehose_configuration_by_id** — Get a dotdigital Data Firehose configuration by id. Returns: id. Required: id.
- **update_a_dotdigital_data_firehose_configuration_by_id** — Update a dotdigital Data Firehose configuration with new details. Returns: id. Required: id.
- **delete_a_dotdigital_data_firehose_configuration_by_id** — Delete a dotdigital Data Firehose configuration by id. Returns an empty 204 response on success. Cannot be deleted while a data sync is in progress (returns 409). Required: id.
- **create_a_dotdigital_data_firehose_configuration** — Create a new dotdigital Data Firehose configuration. Returns: id.
- **dotdigital_configuration_status_bulk_update** — Update the status of a dotdigital Data Firehose configuration by setting it to enabled or disabled. Required: id, new_status. Returns an empty 204 response on success.
- **list_all_dotdigital_configuration_custom_identifiers** — List all custom identifiers defined for the dotdigital account. Returns: name.
- **create_a_dotdigital_configuration_custom_identifier** — Create a new custom identifier in dotdigital that will be available to identify contacts. Returns: name. Required: name. The name must be less than 50 characters and must not already exist.
- **dotdigital_configuration_custom_identifiers_bulk_delete** — Delete a custom identifier by name in dotdigital if it exists. Returns an empty 204 response on success. Required: name.
- **get_single_dotdigital_insight_data_import_by_id** — Get the status and results of a dotdigital Insight data import by id. Returns: importId, status, collectionName, summary, failures. Required: id.
- **dotdigital_insight_data_imports_bulk_update** — Bulk import Insight data records into a dotdigital collection, upserting existing or creating new records asynchronously. Returns: importId, status. Required: collectionName, collectionScope, collectionType, records. If targeting a contact-scoped collection, each record must include a contactIdentity. Check import completion by polling the get import status endpoint with the returned importId.
- **get_single_dotdigital_insight_data_async_by_id** — Get the status of an asynchronous Insight data job in dotdigital by id, including any results if available. Returns: jobId, status. Required: id. Use this endpoint to poll the progress of async operations such as emptying or deleting collections.
- **list_all_dotdigital_insight_data_collections** — List all Insight data collections in dotdigital at both account and contact level. Returns: type.
- **create_a_dotdigital_insight_data_collection** — Create an empty Insight data collection in dotdigital. If the collection already exists, a successful result is returned. Returns an empty response on success (201 when created, 200 if already exists). Maximum of 1000 Insight data collections per account. Required: collection_name, collectionScope, collectionType.
- **dotdigital_insight_data_collections_bulk_delete** — Delete an Insight data collection and all its records in dotdigital. The deletion is asynchronous and progress can be monitored via getAsyncStatus. Deleting a contact-scoped collection deletes it for all contacts. Returns: jobId. Required: collection_name.
- **dotdigital_account_delete_records_bulk_delete** — Delete 1 to 5000 records from a dotdigital account scoped Insight Data collection by specifying record keys in the request body. Returns the delete confirmation response with operation attributes. Required: collection_name.
- **dotdigital_collection_empties_bulk_delete** — Empty all records from a dotdigital Insight data collection without deleting the collection itself, preserving dependencies on product recommendations, campaigns, and segments. Returns: jobId. Required: collection_name. The deletion is asynchronous and progress can be monitored via the async status endpoint.
- **list_all_dotdigital_collection_schemas** — Get the JSON schema for a dotdigital Insight data collection by collection name. Returns the collection's schema definition (attributes) that all records added to the collection must adhere to, though records are allowed to extend it. Required: collection_name.
- **list_all_dotdigital_insight_data_accounts** — List all Insight data collections for a dotdigital account. Returns: _links, _items. Results are paginated.
- **update_a_dotdigital_insight_data_account_by_id** — Upsert a record into an account Insight data collection in dotdigital, creating it if it does not exist or replacing it if it does. Returns an empty 201 response on creation or 204 on replacement. Required: collection_name, id.
- **delete_a_dotdigital_insight_data_account_by_id** — Delete a single record from an account Insight data collection in dotdigital. Returns an empty 204 response on success. Required: collection_name, id.
- **get_single_dotdigital_insight_data_account_by_id** — Get a single record from an account Insight data collection in dotdigital. Returns: _links, _items. Required: collection_name, id.
- **list_all_dotdigital_insight_data_contacts** — List Insight data records from a contact-scoped collection in dotdigital. Records are returned in ascending order. Returns: id, name, created, updated, marketSector, users. Required: collection_name. Max 5000 records per page.
- **update_a_dotdigital_insight_data_contact_by_id** — Upsert (create or replace) an Insight data record in a contact-scoped Insight data collection for a specific dotdigital contact. The request body is a free-form JSON object whose fields depend on the collection schema. Returns an empty 204 response on success (or 201 when a new record is created). Required: identifier, value, collection_name, id.
- **delete_a_dotdigital_insight_data_contact_by_id** — Delete a single Insight data record from a contact's collection in dotdigital. Returns an empty 204 response on success. Required: identifier, value, collection_name, id.
- **get_single_dotdigital_insight_data_contact_by_id** — Retrieve a single Insight data record from a contact's collection in dotdigital. Returns: id, name, created, updated, marketSector, users, _links, _items. Required: identifier, value, collection_name, id.
- **dotdigital_delete_records_bulk_delete** — Delete 1 to 5000 records from a contact-scoped Insight Data collection in dotdigital in a single call. Returns a confirmation of the bulk delete operation. Required: identifier, value, collection_name, keys.
- **dotdigital_empties_bulk_delete** — Empty all records from a specified Insight data collection for a single contact in dotdigital. The collection itself is not deleted, so new data can be added without affecting data dependencies. The deletion is asynchronous and can be monitored via getAsyncStatus. Returns: jobId. Required: identifier, value, collection_name.
- **create_a_dotdigital_events_import** — Import a batch of events associated to contacts in dotdigital. The request body is a JSON array of 1–5000 event objects processed asynchronously. Returns a 202 Accepted response with no body, indicating the import is being processed. Required: body.
- **get_single_dotdigital_events_export_by_id** — Retrieve a set of queued events from a dotdigital events subscription by id. Returns: checkPoint, events. Omit checkPoint on the first call to get the earliest queued events; pass the returned checkPoint on subsequent calls to page through newer events. Required: id. Maximum call duration is 30 seconds; subscriptions not polled within 30 days are automatically set to inactive.
- **list_all_dotdigital_export_subscriptions** — List all dotdigital events subscriptions and their details. Returns: id, name, status, subscribedEventTypes, alertsConfiguration, created, updated.
- **create_a_dotdigital_export_subscription** — Create a dotdigital events subscription. The name must be unique within the account's subscriptions; all filters on an event type must match (logical AND). Returns: id, status, subscribedEventTypes, alertsConfiguration, created, updated, name. Required: name, status, subscribedEventTypes, alertsConfiguration.
- **get_single_dotdigital_export_subscription_by_id** — Get a single dotdigital events subscription by id. Returns: id, name, status, subscribedEventTypes, alertsConfiguration, created, updated. Required: id.
- **update_a_dotdigital_export_subscription_by_id** — Update a dotdigital events subscription by id with new details. All filters on an event type must match (logical AND). Returns: id, name. Required: id, name, status, subscribedEventTypes, alertsConfiguration.
- **delete_a_dotdigital_export_subscription_by_id** — Delete a dotdigital events subscription by id. Once deleted it cannot be restored — this is a destructive call. Returns an empty 204 response on success. Required: id.
- **get_single_dotdigital_events_lob_by_id** — Get a large object (LOB) from dotdigital events by id. Returns the binary large object data; the content-type header indicates the data type. Required: id.
- **create_a_dotdigital_marketing_email_send** — Send a marketing email in dotdigital via raw HTML or a triggered campaign template. Returns a 201 response with no body on success. Required: to, from, content. Marketing emails must include the '$UNSUB$' unsubscribe token; email marketing status is checked for known addresses and contacts are created for unknown ones.
- **create_a_dotdigital_marketing_email_batch** — Send a batch of marketing emails in dotdigital. Unsubscribed or suppressed contacts are skipped; unknown addresses are created as contacts. Returns a 201 response confirming the email batch was accepted. Required: body (array of email request objects, minimum 1 item, each with to, from, and content). HTML content must include an unsubscribe link ($UNSUB$ token).
- **list_all_dotdigital_cpaas_profiles** — List dotdigital CPaaS profiles matching the search criteria. Returns: id. The query uses mongo-querystring syntax; numeric strings can be wrapped in single quotes to prevent interpretation as numbers.
- **dotdigital_cpaas_profiles_bulk_update** — Create or update multiple dotdigital CPaaS profiles in a single request. Returns an empty 200 response on success.
- **dotdigital_cpaas_profiles_bulk_delete** — Delete multiple dotdigital CPaaS profiles by id. Returns an empty 200 response on success. Required: id.
- **get_single_dotdigital_cpaas_profile_by_id** — Get a single dotdigital CPaaS profile by id. Returns: id. Required: id.
- **update_a_dotdigital_cpaas_profile_by_id** — Update or undelete a dotdigital CPaaS profile by id. Returns: id. Underscore (_) characters are not allowed in profile field names. Required: id.
- **delete_a_dotdigital_cpaas_profile_by_id** — Delete a dotdigital CPaaS profile by id. Returns an empty 204 response on success. Required: id.
- **create_a_dotdigital_cpaas_profile** — Create a new dotdigital CPaaS profile with custom fields. Returns the created profile including its id and all custom profile fields. Underscore (_) characters are not allowed in profile field names.
- **dotdigital_cpaas_profiles_partial_update** — Partially update a dotdigital CPaaS profile by id, changing only the supplied properties while leaving others intact. Returns the updated profile including its id and all custom profile fields. Required: id and a profile body. Underscore (_) characters are not allowed in profile field names.
- **list_all_dotdigital_automation_inboundrules** — List dotdigital inbound rule configurations. Returns the configuration objects with schema-defined fields.
- **create_a_dotdigital_automation_inboundrule** — Create a dotdigital inbound rule configuration. Returns the created configuration object with schema-defined fields.
- **get_single_dotdigital_automation_inboundrule_by_id** — Get a single dotdigital inbound rule configuration by id. Returns the configuration object with schema-defined fields. Required: id.
- **update_a_dotdigital_automation_inboundrule_by_id** — Update a dotdigital inbound rule configuration by id. Returns the updated configuration object with schema-defined fields. Required: id.
- **delete_a_dotdigital_automation_inboundrule_by_id** — Delete a dotdigital inbound rule configuration by id. Returns an empty 204 response on success. Required: id.
- **create_a_dotdigital_message_status** — Post a status for a dotdigital message. Returns the created message status object confirming the status was received. Required: message_id, status. Valid status values: failed, delivered, read, expired, sent, filtered.
- **get_single_dotdigital_cpaas_message_by_id** — Get a specific CPaaS message in dotdigital by id. Returns the message details including its id. Required: id.
- **update_a_dotdigital_cpaas_message_by_id** — Patch a CPaaS message in dotdigital by id. Returns an empty 202 response on success. Required: id, a request body with patch options.
- **delete_a_dotdigital_cpaas_message_by_id** — Delete a CPaaS message in dotdigital by id. Returns an empty 204 response on success. Required: id.
- **create_a_dotdigital_cpaas_message** — Send a new CPaaS message in dotdigital. Returns the created message object including its id. Required: a request body with message details and options.
- **create_a_dotdigital_messages_batch** — Send a batch of outbound omnichannel messages in one call. The request body is an ARRAY of message objects. Returns an array of {index, messageId} pairs, where index is the 0-based position in the submitted batch. Required per message: to, rules. Max 5000 messages or 50MB per call.
- **create_a_dotdigital_messages_inbound** — Post an inbound message to dotdigital CPaaS. Returns the accepted inbound message object including its id and message attributes. The request body (InboundMessage schema) is required.
- **create_a_dotdigital_inbound_status** — Post a delivery or read status for an inbound message in dotdigital. Returns the inbound message object including its id. Required: inbound_message_id, status. Valid status values: delivered, read.
- **list_all_dotdigital_phonevalidation_singles** — Validate a single phone number in dotdigital. Returns a validation result object with details about the submitted number. Required: phoneNumber. Provide countryCode when the number is in local format.
- **dotdigital_cpaas_phonevalidations_bulk_list** — List bulk phone number validation jobs in dotdigital. Returns an array of JobDetails objects, each containing the job's jobId and status. No required parameters.
- **dotdigital_cpaas_phonevalidations_bulk_create** — Queue a bulk phone number validation job in dotdigital by uploading a CSV file of phone numbers to validate. Returns the unique job identifier as an integer for tracking the asynchronous validation job. Required: file. Only one file per call is allowed; the job runs asynchronously.
- **get_single_dotdigital_phonevalidation_bulk_by_id** — Get the details and current status of a dotdigital bulk phone number validation job by its job id. Returns: id. Required: id.
- **list_all_dotdigital_results** — Get the results CSV file of a successful bulk phone number validation job in dotdigital. Returns a CSV file with columns including Phone Number, Status, MCCMNC, Network Name, Is Ported, and Roaming details. Required: job_id. Failed or incomplete jobs return no data.
- **create_a_dotdigital_profiles_export** — Export dotdigital profile query results as a formatted file for download. Returns the exported data in the requested format. For CSV exports, only primitive types are included; nested fields must be referenced explicitly (e.g., address.line1). No required parameters.
- **dotdigital_profile_optins_bulk_update** — Set opt-in preferences for specified channels on a dotdigital CPaaS profile. Returns the full profile with updated opt-in settings. Required: id.
- **dotdigital_profile_optins_bulk_delete** — Opt out a dotdigital profile from specified channels by removing its opt-in settings. Returns the full profile object with updated opt-in settings. Required: id.
- **update_a_dotdigital_rels_primary_by_id** — Create a primary profile relationship in dotdigital where the linked profile is the primary and this profile is a child. Returns the updated profile object including its id and profile-specific attributes. Required: id, linked_id.
- **delete_a_dotdigital_rels_primary_by_id** — Delete a dotdigital profile's relationship to its primary profile. Returns the updated profile object including its id and profile-specific attributes. Required: id, linked_id.
- **update_a_dotdigital_rels_link_by_id** — Create a relationship link in dotdigital where the primary profile is the parent and the linked profile becomes a child. Returns: id. Required: id, linked_id.
- **delete_a_dotdigital_rels_link_by_id** — Delete a profile relationship link in dotdigital, removing the primary profile's parent relationship to the linked child profile. Returns: id. Required: id, linked_id.
- **delete_a_dotdigital_profile_device_by_id** — Remove a device from a dotdigital profile and close related open sessions. Returns an empty 204 response on success. Required: api_space_id, id, device_id.
- **create_a_dotdigital_push_validation** — Validate push notification capabilities for dotdigital profiles by submitting a list of profile IDs to query. Returns the push capabilities summary object. Required: api_space_id.
- **list_all_dotdigital_profiles_optins** — Get the default profile opt-in/out options for each channel in the dotdigital CPaaS channel service. Returns a map of channel names to boolean opt-in values where true means default opt in and false means default opt out.
- **dotdigital_profiles_optins_bulk_update** — Set the default profile opt-in/out options for each channel in the dotdigital CPaaS channel service. Returns the updated map of channel names to boolean opt-in values where true means default opt in and false means default opt out.
- **list_all_dotdigital_tokens_anons** — Get an anonymous session token in dotdigital that can be used to start an anonymous session. Returns: token. Required: id, nonce.
- **get_single_dotdigital_cpaas_session_by_id** — Get details about a specific dotdigital CPaaS session by id. Returns: id. Required: id.
- **delete_a_dotdigital_cpaas_session_by_id** — Delete a dotdigital CPaaS session by id, ending the session and revoking access to services. Returns an empty 204 response on success. Required: id.
- **list_all_dotdigital_cpaas_templates** — List all available dotdigital CPaaS templates. Returns each template with id and attributes containing the full template fields as defined in the dotdigital OpenAPI templateFull schema.
- **create_a_dotdigital_cpaas_template** — Create a new dotdigital CPaaS template by supplying template details in the request body. Returns the created template with id and attributes containing the full template fields as defined in the dotdigital OpenAPI templateFull schema.
- **get_single_dotdigital_cpaas_template_by_id** — Get a single dotdigital CPaaS template by id. Returns the template with id and attributes containing the full template fields as defined in the dotdigital OpenAPI templateFull schema. Required: id.
- **update_a_dotdigital_cpaas_template_by_id** — Update a dotdigital CPaaS template by id, supplying updated template details in the request body. Returns the updated template with id and attributes containing the full template fields as defined in the dotdigital OpenAPI templateFull schema. Required: id.
- **delete_a_dotdigital_cpaas_template_by_id** — Delete a dotdigital CPaaS template by id. Returns an empty 204 response on success. Required: id.
- **list_all_dotdigital_cpaas_webhooks** — List dotdigital webhook configurations for the account. Returns each configuration's id, macBatchSize, and batchTimeout. Set includeDeleted to true to also return deleted webhook configurations.
- **create_a_dotdigital_cpaas_webhook** — Create a new dotdigital webhook configuration and start streaming events. Batching is encouraged — a batch is sent when the number of events reaches macBatchSize or after batchTimeout seconds, whichever occurs first. Returns: id, url, secret, subscriptions, batch, name. Required: name, url.
- **get_single_dotdigital_cpaas_webhook_by_id** — Get a single dotdigital webhook configuration by id. Returns: id, name, url, secret, subscriptions, batch. Set includeDeleted to true to also retrieve deleted webhook configurations. Required: id.
- **update_a_dotdigital_cpaas_webhook_by_id** — Update an individual dotdigital webhook configuration by id. Returns: id, name, url, secret, subscriptions, batch. Required: id, name, url.
- **delete_a_dotdigital_cpaas_webhook_by_id** — Delete a dotdigital webhook by id. Returns an empty 204 response on success. Required: id.
- **list_all_dotdigital_webhooks_availableevents** — List available dotdigital webhook events you can subscribe to, along with optional filters for refining event selection. Returns the available events and their optional filters; set includeSchemas to true to also receive schema information for each event.
- **list_all_dotdigital_webhooks_availabletemplates** — List available webhook event templates in dotdigital that can be used when creating a webhook. Event templates are pre-defined groups of events covering common use-cases. Returns: name, description, events.
- **list_all_dotdigital_chat_messages** — List dotdigital chat messages for a specific chat, retrieving messages from a point in time and working backwards through chat events. Returns: id. Required: chat_id.
- **create_a_dotdigital_chat_message** — Send a message to a dotdigital chat. The request body contains the message details to send, and the response confirms the message was successfully sent. Required: chat_id.
- **list_all_dotdigital_chat_events** — List events for a dotdigital chat, reading forward from a given event id. Returns an array of MessageEvent objects including id and event-specific attributes. Required: chat_id.
- **list_all_dotdigital_conversation_messages** — List dotdigital conversation messages, working backwards from a given event in time. Returns partial and complete messages aggregated from the conversation events. Required: conversation_id. Max 100 messages per page.
- **create_a_dotdigital_conversation_message** — Send a message into an existing dotdigital conversation. Returns the created message id and the event id it occupies in the conversation stream. Required: conversation_id. Required in body: parts.
- **list_all_dotdigital_conversation_events** — List conversation events for a dotdigital conversation by reading forward from a specified event id. Returns: id. Required: conversation_id.
- **list_all_dotdigital_address_book_contact_scores** — List contact scoring for contacts within a specific dotdigital address book or segment. Returns: contactId, email, dateModified, scoreLabel, score, engagement, suitability. Required: address_book_id. Max 1000 records per page.
- **list_all_dotdigital_insight_data_accounts_by_collection** — List all records from a dotdigital Insight data account-level collection. Returns: id, name, created, updated, marketSector, users. Required: collection_name. All data is returned in ascending order.
- **list_all_dotdigital_insight_data_contacts_by_identifier** — Get a dotdigital contact's details by a specific identifier (contactId, email, mobileNumber, or a custom identifier). Returns the contact object including contactId, identifiers, dataFields, and status. Required: identifier, value. The value must match the type of the identifier.
- **list_all_dotdigital_insight_data_contacts_by_collection** — List insight data records for a specific dotdigital contact within a named collection. Returns: id, name, created, updated, marketSector, users. Required: identifier, value, collection_name.

## How it works

1. **Link your customer's Dotdigital 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 Dotdigital.** The Proxy API is a 1-to-1 mapping of the Dotdigital 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

- **Sync customer consent and preferences bidirectionally** — Let your users keep contact opt-ins, marketing preferences, and address book membership consistent between your SaaS and Dotdigital, so their campaigns stay GDPR/CCPA compliant without manual reconciliation.
- **Push product events into Dotdigital as Insight Data** — Give your customers a way to send behavioral events from your platform — reviews, loyalty tier changes, tickets closed, contracts signed — directly into Dotdigital contact profiles so marketers can trigger personalized journeys off your product data.
- **Trigger transactional email, SMS, and WhatsApp from your workflows** — Let joint customers use Dotdigital as the sending infrastructure for order confirmations, reminders, and alerts fired from inside your SaaS, without building a separate messaging pipeline.
- **Enroll contacts into Dotdigital programs from your product** — Instead of asking marketers to rebuild automations on your side, let your users drop contacts into existing Dotdigital programs based on events happening in your app — webinar attendance, plan upgrades, or churn risk signals.
- **Surface Dotdigital campaign performance inside your dashboards** — Pull campaign metrics, opens, clicks, bounces, and ROI data into your SaaS so shared users see engagement analytics alongside your own product data without switching tools.

## What you can build

- **Contact and address book sync** — Create, update, and delete contacts in Dotdigital and manage their address book membership directly from your platform's UI.
- **Consent-aware signup flows** — Capture contacts with legal consent records and channel preferences in a single call when users sign up or fill out forms in your product.
- **Custom event and object streaming to Insight Data** — Push structured JSON payloads from your app into Dotdigital's Insight Data collections so marketers can build segments and journeys on your product signals.
- **Transactional messaging service** — Send one-off emails, SMS messages, and triggered campaigns from your SaaS workflows using Dotdigital as the underlying delivery channel.
- **Program enrollment automation** — Automatically enroll or re-enroll contacts into pre-built Dotdigital marketing programs when specific events occur in your product.
- **Campaign analytics reporting module** — Aggregate campaign summaries, opens, clicks, ROI, and revenue data from Dotdigital and display it in your customer-facing analytics views.

## FAQs

### How does authentication to Dotdigital work through Truto?

Dotdigital uses API user credentials (username and password) scoped to a specific region (r1, r2, r3, etc.). Truto handles credential capture, region routing, and secure storage so your end users connect their Dotdigital account without you managing auth logic.

### Can we push custom objects or events into Dotdigital?

Yes. Dotdigital's Insight Data acts as its custom object store. You can create collections and push structured JSON records tied to contacts or accounts using the Insight Data endpoints, which is the recommended pattern for syncing product-specific events and entities.

### Does the integration support both marketing and transactional messaging?

Yes. You can create and manage marketing campaigns (email and SMS), trigger campaigns for specific contacts, and send transactional emails, email batches, SMS, and WhatsApp messages through dedicated endpoints.

### How do we handle bulk contact imports without hitting rate limits?

For large audience syncs, use the contacts import collection and transactional data import endpoints, which run asynchronously. You can poll the import status by ID to confirm completion, avoiding the overhead of per-contact API calls.

### Can we receive real-time events from Dotdigital back into our app?

Yes. You can register webhooks through the CPaaS webhook endpoints and subscribe to available events, so engagement signals like clicks, sends, and message status updates can be pushed to your platform in real time.

### How fresh is the campaign analytics data pulled from Dotdigital?

Campaign summaries, opens, clicks, ROI, and activity endpoints reflect Dotdigital's near real-time reporting. For continuous sync, use the 'since date' variants (e.g., activities, clicks, opens, revenue since date) to pull incremental data on a schedule.

## Related reading

- [Connect Dotdigital to ChatGPT: Automate Marketing & Manage Leads](https://truto.one/blog/connect-dotdigital-to-chatgpt-automate-marketing-manage-leads/) — Learn how to connect Dotdigital to ChatGPT using Truto's managed MCP server. Automate campaigns, manage leads, and orchestrate marketing data via AI.
- [Connect Dotdigital to Claude: Manage Omnichannel Campaigns & ROI](https://truto.one/blog/connect-dotdigital-to-claude-manage-omnichannel-campaigns-roi/) — Learn how to connect Dotdigital to Claude via a managed MCP server. Execute omnichannel campaigns, import Insight Data, and track ROI with AI agents.
- [Connect Dotdigital to AI Agents: Automate Messaging & Lead Scoring](https://truto.one/blog/connect-dotdigital-to-ai-agents-automate-messaging-lead-scoring/) — Learn how to connect Dotdigital to AI agents using Truto's unified /tools API. Automate SMS, email campaigns, and contact lead scoring workflows.
