Skip to content

Marketing Automation · Beta

Attentive
API integration

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

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

Talk to us
Attentive

Use Cases

Why integrate with Attentive

Common scenarios for SaaS companies building Attentive integrations for their customers.

01

Trigger SMS Journeys from Product Events

Help your users turn in-app actions like ticket closures, subscription renewals, or review submissions into Attentive-triggered SMS flows. This makes your platform the behavioral engine behind their highest-converting marketing channel.

02

Sync Computed Audiences into Attentive Segments

If your SaaS is a CDP, analytics tool, or loyalty platform, let users push cohorts like 'High LTV' or 'Churn Risk' directly into Attentive segments for targeted SMS campaigns. Bulk segment endpoints handle up to 10,000 members per request without rate limit headaches.

03

Unify Identity Across the Marketing Stack

Resolve your internal user IDs, Shopify IDs, or Klaviyo IDs with Attentive subscriber profiles via phone or email. This gives your users a single source of truth for cross-platform attribution and personalization.

04

Keep Subscription Status in Sync Across Systems

Subscribe to Attentive webhooks for SMS opt-ins, opt-outs, and privacy deletion requests so your CRM, helpdesk, or marketing tool never messages a user who's legally opted out. Critical for TCPA and CCPA compliance.

05

Power E-commerce Flows from Headless Storefronts

If your platform handles storefronts, landing pages, or checkout, pipe product views, add-to-carts, and purchases into Attentive to activate native cart abandonment and post-purchase SMS journeys.

What You Can Build

Ship these features with Truto + Attentive

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

01

Custom Event Dispatcher

Let users map any in-app event to an Attentive custom event with arbitrary JSON properties that marketers can use as branching logic in Journey Builder.

02

Bulk Segment Sync Engine

Ship a background sync that creates Attentive segments and pushes thousands of members in and out asynchronously, with job status tracking via the bulk operation endpoints.

03

Custom User Attribute Enrichment

Push attributes like loyalty tier, points balance, or lifecycle stage onto Attentive user profiles so marketers can personalize SMS copy with merge tags.

04

Identity Resolution Bridge

Associate your platform's user IDs with Attentive subscribers via phone or email, enabling unified reporting and cross-tool orchestration.

05

Compliance Webhook Listener

Register webhooks for subscription and privacy events so your product automatically updates consent status and processes deletion requests in sync with Attentive.

06

E-commerce Telemetry Pipeline

Forward product views, add-to-carts, and purchases from your storefront or checkout into Attentive to power native abandonment and post-purchase journeys.

SuperAI

Attentive AI agent tools

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

list_all_attentive_authorizations

Exchange an OAuth2 Authorization Code for an Attentive access token. Returns: token_type, access_token, refresh_token, scope, expires_in. Required: code.

create_a_attentive_oauth_access_token

Exchange Attentive OAuth2 client credentials for an access token. Returns: token_type, access_token, scope, expires_in. Required: client_id and client_secret.

create_a_attentive_add_purchase

Post purchase events to Attentive. Sends a JSON array of purchase objects, each identifying the visitor by phone (E.164 format), email, or clientId, with the order amount in cents and its item states. Returns an empty 201 Accepted response on success. Each itemStates array must contain at least 1 item.

list_all_attentive_webhooks

List all webhooks configured in Attentive. Returns each webhook's id, url, subscribed topics, optedOut flag, and companyIds.

create_a_attentive_webhook

Create a webhook in Attentive to subscribe a URL to event notifications. Returns the created webhook's id, url, subscribed events, optedOut flag, and disabledAt. Required: url. Events are case sensitive (e.g. sms.subscribed, email.opened).

delete_a_attentive_webhook_by_id

Delete a webhook in Attentive by id. Returns an empty 204 response on success. Required: id.

update_a_attentive_webhook_by_id

Update an existing webhook in Attentive by id. Returns the updated webhook's id, url, subscribed events, optedOut flag, and disabledAt. Required: id, url. Set disabled to true to disable the webhook endpoint.

list_all_attentive_custom_attributes

List all custom attributes configured in Attentive. Returns the customAttributes collection where each attribute includes its name, displayName, and description. No required parameters.

list_all_attentive_signature_keys

Get your Attentive webhook signature keys, the signing secrets Attentive generates for your webhooks so you can verify that payloads were actually sent from Attentive. Returns: signatureKeys. No required parameters.

list_all_attentive_hellos

Test authentication with Attentive to verify your Authorization header is configured correctly; the response includes information specific to your company. Returns: company, platform.

list_all_attentive_users

Verify your Attentive authentication credentials and get details about the authenticated company. Returns: id, company, platform, scopes, webhooks, userProperties, segments, timestamp, subscriber, creative, subscription.

get_single_attentive_user_property_by_id

Get a user property in Attentive by id. Returns: id, name, displayName, description, createdAt. Required: id.

create_a_attentive_user_property

Set a user property for a subscriber in Attentive. Returns an empty 201 Created response on success. Accepts userPropertyId, externalId, phone, email, and values (array of strings) in the JSON body.

create_a_attentive_user_properties_batch

Bulk set user properties for a user in Attentive. Accepts the user's externalId, the target userPropertyIds, and the operations to apply, and returns an empty 200 response on success.

list_all_attentive_segments

List segments in Attentive. Returns segment records including id, name, and description.

attentive_segments_bulk_delete

Remove members from an Attentive segment in bulk. Requires segment_id and users. Returns an empty response on success.

delete_a_attentive_segment_by_id

Clear all members from an Attentive segment by id. Requires id. Returns an empty 202 response on success.

create_a_attentive_segment

Create a new empty segment in Attentive. Returns the created segment's id and description. Requires name.

delete_a_attentive_segments_external_id_by_id

Delete a segment in Attentive by its external ID. Returns an empty 204 response on success. Required: id.

get_single_attentive_segments_bulk_operation_by_id

Get the status of a bulk job in Attentive for segment member add or remove operations, using the job status endpoint linked from the bulk operation responses. Returns: id, status, errors, startedAt, completedAt. Required: id (the bulk job ID returned when the bulk operation was submitted).

create_a_attentive_user_attribute

Create or update a single Attentive user with attributes, subscriptions, and identifiers — an existing user matching the provided identifiers is updated, otherwise a new user is created. Requires a JSON body carrying the user's identifiers, subscriptions, and custom-attribute keys (max 100 attributes; arrays or maps of attribute values are rejected). Returns a 202 Accepted acknowledgement body;…

attentive_user_attributes_bulk_create

Bulk submit Attentive user attribute updates — accepts up to 256 records per request, validated and processed asynchronously. Requires a JSON array of user-attribute records. Returns: timestamp, company, subscriber, creative, subscription.

get_single_attentive_bulk_job_by_id

Get the status of a bulk ingestion job in Attentive by id. Returns: id. Once the job is COMPLETED, the per-request results are downloadable as a .jsonl file for up to 2 weeks. Required: id.

create_a_attentive_segments_member

Add members to an Attentive segment in bulk, identified by email, phone, and/or clientUserId. The request is queued for asynchronous processing. Returns: message, batchJobId. Required: members. Accepts 1 to 10,000 members per request, with at least one identifier per member.

attentive_segments_members_bulk_delete

Remove members from an Attentive segment in bulk, identified by email, phone, and/or clientUserId. The request is queued for asynchronous processing. Returns: message, batchJobId. Required: members. Accepts 1 to 10,000 members per request, with at least one identifier per member.

get_single_attentive_segments_external_by_id

Get segment details in Attentive by external ID. Returns the segment record: id plus attributes (upstream-defined segment fields). Required: id (the segment's external ID, 1-255 characters).

update_a_attentive_segments_external_by_id

Partially update an existing Attentive segment by external ID; only the fields you provide are changed. Returns the updated segment record: id plus attributes (upstream-defined segment fields). Required: id (the segment's external ID, 1-255 characters).

delete_a_attentive_segments_external_by_id

Archive (soft-delete) an Attentive segment by external ID; the segment is hidden from list operations but can be restored. Returns an empty 204 response on success. Required: id (the segment's external ID, 1-255 characters).

list_all_attentive_test_authentications

Test that the Attentive API token is valid by getting information about the authenticated caller. Returns: id, company, platform, scopes, webhooks, userProperties, segments. Takes no request parameters.

create_a_attentive_authorization_codes_token

Exchange a temporary Attentive authorization code for an access token, which does not expire. Returns: access_token, token_type, scope, expires_in, and optionally refresh_token. Supply grant_type (authorization_code), code, redirect_uri, client_id, and client_secret. The authorization code expires two minutes after it is issued if not used.

create_a_attentive_ecommerce_product_view

Create a product view event in Attentive when a user views a product. Requires a JSON body matching the ProductViewRequest schema. Returns a 200 OK response with no response body on success.

create_a_attentive_ecommerce_add_to_cart

Report an add-to-cart event to Attentive when a shopper adds a product to their shopping cart. Requires a JSON request body (AddToCartRequest). Returns an empty 200 Ok response on success.

create_a_attentive_ecommerce_purchase

Create a purchase event in Attentive when a user generates an order or purchase. Returns a 200 Ok success acknowledgment; no response body fields are documented. Requires a JSON request body (upstream PurchaseRequest schema).

create_a_attentive_events_custom

Send an event-based record of a user action to Attentive as a custom event, for use in Segment Builder and Journey Builder. Returns an "Ok" success status without a documented response body. Required: a JSON request body matching the CustomEventsRequest schema, including the event type and the user associated with the action. Note that event type names are case sensitive.

list_all_attentive_attributes_customs

Get all custom attribute data associated with a user in Attentive. Returns the user's attribute data (properties) and the associated user record (email, phone, externalIdentifiers). Requires exactly one of phone or email — passing both returns a 400 error.

create_a_attentive_attributes_custom

Create custom attribute data for a user in Attentive. Returns the stored attributes (properties) and the associated user (email, phone, externalIdentifiers). Requires properties and user. Attribute names are limited to 200 characters, arrays are rejected, and new values cannot be added to an existing property created in the Attentive platform.

list_all_attentive_subscriptions

Get subscription eligibility for a user in Attentive, listing all subscription types and channels the user is subscribed to so you can check SMS or email eligibility before messaging. Returns a subscription-eligibility response; Attentive does not enumerate its fields in the API reference. Required: phone or email — one lookup parameter must be provided.

create_a_attentive_subscription

Opt a user in to a subscription in Attentive. Requests are accepted asynchronously and the response reports which subscriptions already exist and which will be created; Attentive does not enumerate the response's fields in the API reference. Required: user (phone and/or email), plus either signUpSourceId or both locale and subscriptionType. Phone numbers must be in e164 format.

list_all_attentive_product_catalog_uploads

List recent Attentive product catalog uploads with their ingestion statuses, in order of creation. Returns: uploadId, status, Expires (how long you can wait before uploading the file, after which the upload is no longer processed).

create_a_attentive_product_catalog_upload

Start an Attentive product catalog upload and receive a pre-signed AWS S3 URL to upload your full or partial catalog file to. Returns: uploadId, status, Expires. Processing is asynchronous: the status moves through validating, validated, and completed.

get_single_attentive_product_catalog_upload_by_id

Look up an Attentive product catalog upload by id to check its ingestion status. Returns: uploadId, status, Expires. Required: id (the upload ID returned from a previous call).

create_a_attentive_privacy_delete_request

Create a new privacy delete request in Attentive to remove a subscriber within thirty days. Returns: id. The request must specify either subscriberPhone or subscriberEmail (the API rejects calls that include neither). Use the returned id with the GET endpoint to confirm deletion.

get_single_attentive_privacy_delete_request_by_id

Get a CCPA privacy delete request by id in Attentive to check its processing status. Returns: id, processed, type, subjectPhone, subjectEmail, requestMsg, requestDateTime, processingStartDateTime, processingEndDateTime. Required: id (the alphanumeric request id returned when the delete request was created).

create_a_attentive_identity_resolution_user_identifier

Associate a client user identifier or custom identifiers with a user's other identifiers in Attentive. At least one of phone, email, shopifyId, klaviyoId, clientUserId, or customIdentifiers is required, and a clientUserId or customIdentifiers value must be accompanied by at least one other identifier. Returns an empty 202 Accepted response with no body on success.

create_a_attentive_coupon

Add new discount codes to an existing Attentive offer (coupon pool). The upload is processed asynchronously — returns an empty 202 Accepted response with no body; check the offer's sync status in the Attentive Offers page. Required: coupon_pool_id. Max 200,000 codes per request; distributionStart must precede distributionStop.

create_a_attentive_custom_event

Create a custom event in Attentive to send user actions for use in the Segment Builder and Journey Builder. Returns the created event with type, externalEventId, occurredAt, properties, and user. Required: type, properties, user. Event type names are case sensitive, and an occurredAt older than 12 hours will not trigger Journeys.

get_single_attentive_clear_status_by_id

Get the status of an asynchronous clear-members request for a segment in Attentive. Returns: status, clearId, clearStartedAt, clearCompletedAt. Required: id (the segment id).

create_a_attentive_clear_segment

Clear all members from an Attentive segment identified by its external ID; the removal runs asynchronously after the request is accepted for processing. Returns the acceptance response with its id and schema-defined attributes. Only segments created via the Public API can be cleared. Required: external_id.

get_single_attentive_clear_segment_status_by_id

Get the status of the most recent clear-segment operation for an Attentive segment identified by its external ID. Returns: status, clearId, clearStartedAt, clearCompletedAt. Required: id (the segment's external ID, 1-255 characters). Only segments created via the Public API can be queried.

create_a_attentive_subscriptions_unsubscribe

Unsubscribe an Attentive user from a subscription type or channel — or from all subscriptions when none are specified. Returns unsubscribeResults covering subscriptions already unsubscribed and those being unsubscribed asynchronously, each with its type, channel, created timestamp, and destination address. Required: user (email and/or phone; email matches only email subscriptions, phone only text…

Why Truto

Why use Truto’s MCP server for Attentive

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

01

Auto-generated, always up to date

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

02

Fine-grained access control

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

03

Multi-tenant by design

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

04

Works with every MCP client

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

05

Built-in auth, rate limits, and error handling

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

06

Expiring and auditable servers

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

How It Works

From zero to integrated

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

01

Link your customer’s Attentive account

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

02

We handle authentication

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

03

Call our API, we call Attentive

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

04

Unified response format

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

FAQs

Common questions about Attentive on Truto

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

How does authentication work with Attentive via Truto?

Attentive uses OAuth, and Truto handles the full token exchange flow. Your end users authorize once, and Truto manages token storage, refresh, and injection into every API call so you never touch credentials.

Can we send arbitrary custom data into Attentive to drive SMS journeys?

Yes. The custom events endpoint accepts any JSON property payload, and marketers can reference those exact fields inside Attentive's Journey Builder to branch logic or personalize message content.

How do we handle syncing large audiences without hitting rate limits?

Use the bulk segment member endpoints, which process asynchronously and support large batches per request. You can poll the bulk operation status endpoint to track completion and surface progress to your users.

Can we receive real-time updates when users subscribe or unsubscribe?

Yes. Truto exposes Attentive's webhook management endpoints so you can register, update, and delete subscriptions programmatically, keeping your system in sync with opt-in and opt-out events as they happen.

Does Truto support bi-directional identity resolution between our platform and Attentive?

Yes. The identity resolution endpoint lets you associate your internal user ID, Shopify ID, or Klaviyo ID with an Attentive subscriber identified by phone or email, enabling unified cross-platform tracking.

How are privacy and deletion requests handled?

You can submit CCPA-style deletion requests through the privacy delete endpoint and check status by ID, making it straightforward to honor data subject requests originating in your product across Attentive as well.

Attentive

Get Attentive integrated into your app

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