Skip to content

Marketing Automation

iPost
API integration

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

Talk to us
iPost

Use Cases

Why integrate with iPost

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

01

Sync loyalty and player identity into marketing journeys

Hospitality, gaming, and membership SaaS platforms can push unique user identifiers (Player ID, Member ID) into iPost so end users get marketing campaigns tied to their real CRM identity, not just an email address.

02

Stream transactional events into marketer-controlled segments

SaaS platforms can push purchases, tier changes, check-ins, or redemptions into iPost DataTables, letting their customers' marketing teams build dynamic audiences without engineering involvement on every new segment.

03

Trigger event-driven transactional messages

Product teams can fire iPost journey automations from in-app events (booking confirmed, tier upgraded, cart abandoned) and pass dynamic Properties so each message contains event-specific data like QR codes or location details.

04

Enable 1-click actions from email links

SaaS apps powering landing pages can use iPost's encrypted blob tokens to identify users from email click-throughs without a login, enabling 1-click renewals, preference updates, or list removals.

05

Centralize compliance and suppression management

Regulated industries like gaming, healthcare, and finance can push MD5-hashed suppression entries into iPost from their SaaS platform, keeping PII off the wire while enforcing global opt-outs.

What You Can Build

Ship these features with Truto + iPost

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

01

Identity-based contact upsert

Use create_a_i_post_contacts_upsert to map your platform's user ID to an iPost contact, keeping GlobalEmailStatus and GlobalMobileStatus in sync as users change preferences in your app.

02

Real-time event push to DataTables

Use i_post_datatable_records_bulk_update to stream transactional activity (purchases, tier changes, redemptions) into iPost's relational tables for dynamic segmentation.

03

Triggered journey enrollment with dynamic Properties

Use create_a_i_post_journey_automation to enroll users in journeys and inject per-message Properties like QR codes, location IDs, or one-time offers.

04

Blob-powered zero-login landing pages

Use get_single_i_post_contacts_blob_by_id and update_a_i_post_contacts_blob_by_id to identify users from email click tokens and update their state without requiring a login.

05

Localized list management for multi-location customers

Use create_a_i_post_list, create_a_i_post_md_5_list_contact, and i_post_list_contacts_bulk_create to automatically provision and populate per-location or per-franchisee lists as new entities are created in your platform.

06

Privacy-safe suppression sync

Use create_a_i_post_md_5_list_contact to push MD5-hashed emails into suppression lists, enforcing global opt-outs without ever sending plaintext PII over the wire.

SuperAI

iPost AI agent tools

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

create_a_i_post_contact

Add a contact to the iPost account. GlobalEmailStatus and GlobalMobileStatus are assumed true when their corresponding Email or Mobile fields are present, and ignored when those fields are absent. Returns: Contact_ID, Email, Mobile, GlobalEmailStatus, GlobalMobileStatus.

update_a_i_post_contact_by_id

Update an iPost contact's information by ContactID. GlobalEmailStatus and GlobalMobileStatus are assumed true when their corresponding Email or Mobile fields are present, and ignored when those fields are absent. Returns: Contact_ID, Email, Mobile, GlobalEmailStatus, GlobalMobileStatus. Required: id.

get_single_i_post_contact_by_id

Retrieve an iPost contact using the blob — an encrypted tracking token optionally appended to tracked links in iPost mailings. Returns: Contact_ID, Email, Mobile, GlobalEmailStatus, GlobalMobileStatus. Required: id (blob value).

list_all_i_post_contacts

List contacts on a specific iPost list by list ID. Returns up to 10,000 contact records per call. Returns: Contact_ID, Email, Mobile, GlobalEmailStatus, GlobalMobileStatus. Required: list_id.

i_post_contacts_bulk_create

Add multiple contacts to an iPost journey automation. Each recipient can be identified by an existing Contact_ID or by Email (which may create a new contact if no match is found). An optional Properties object supplies iTL template variable values for journey email assembly, overriding matching contact profile fields. Returns an opaque confirmation response from the journey automation endpoint. Required: journey_id, Recipients.

get_single_i_post_contact_status_by_id

Get the opt-in/opt-out status of a contact across all static lists and topics in ipost. Returns: lists, topics — each keyed by identifier with a value of true if the contact is opted in or false if opted out. Required: id.

create_a_i_post_list

Create a new list in ipost. Returns: id.

update_a_i_post_list_by_id

Update an existing list in ipost by id. Returns: id. Required: id.

delete_a_i_post_list_by_id

Empty an ipost list by removing all contacts from it. Returns an empty 204 response on success. Required: id.

create_a_i_post_md_5_list_contact

Add one or more contacts to an ipost MD5 Suppression List. Uploaded email addresses are hashed to MD5 format upon ingestion; matching is case-sensitive, so the case of each address must match exactly for suppression to apply. Returns an empty 204 response on success. Required: list_id.

i_post_contact_lists_bulk_create

Add a contact in ipost to one or more lists. Returns an empty 204 response on success. Required: contact_id. Note: GlobalEmailStatus and GlobalMobileStatus are assumed true when absent if the corresponding Email or Mobile fields are present, and are ignored when the corresponding fields are absent.

delete_a_i_post_list_contact_by_id

Remove one or more contacts from an iPost list. Required: list_id. Returns an empty 204 response on success.

i_post_list_contacts_bulk_create

Add or update one or more contacts in an iPost list using encrypted blob tokens. Blobs encode contact identity information and can be sourced from iPost email tracking parameters appended to tracked URLs. Required: list_id. Returns an empty 204 response on success.

create_a_i_post_column

Create a new contact column in ipost. Returns: id, name.

delete_a_i_post_column_by_id

Delete an existing contact column in ipost by id. Returns an empty 204 response on success. Required: id.

list_all_i_post_columns

List all existing contact columns in ipost. Returns: id, name.

create_a_i_post_process_automation

Create a new Process Automation in ipost, specifying automation activities and schedule configuration. Returns: id, status. Supports special automation_schedule.schedule_time_zone values: same_time_sending (Recipient Local Time) and send_time_optimisation (Send Time Optimization), in addition to standard timezone identifiers.

update_a_i_post_process_automation_by_id

Update the status of an existing Process Automation in ipost. Returns: id, status. Required: id, status.

delete_a_i_post_process_automation_by_id

Delete a Process Automation from your ipost account by id. Returns an empty 204 response on success. Required: id.

create_a_i_post_journey_automation

Create a Journey Automation in ipost. Supply recipients via the Recipients array (using Contact_ID for existing contacts or Email for new ones, plus optional Properties for iTL variable substitution) and define automation steps via Automation_Activities (use the children array for multi-step flows). Returns: id.

get_single_i_post_journey_automation_by_id

Search for Journey Automations in ipost. Returns matching journey automation records from the data envelope. Returns: id.

update_a_i_post_journey_automation_by_id

Update a Journey Automation in ipost by id. Update enrolled recipients via the Recipients array (Contact_ID, Email, Properties) and redefine automation steps via Automation_Activities (use the children array for multi-step flows). Returns: id. Required: id.

create_a_i_post_journey_automation

Add contacts to an ipost journey automation to enroll them in the journey sequence. Each recipient can be an existing contact identified by Contact_ID, or a new contact identified by Email; an optional Properties object supplies iTL variable substitutions for email content used by the journey. Returns an empty 204 response on success. Required: journey_id.

create_a_i_post_datatable

Create a new DataTable in ipost. Returns the id of the newly created DataTable.

update_a_i_post_datatable_by_id

Modify an existing DataTable in ipost by id. Returns the id of the updated DataTable. Required: id.

list_all_i_post_datatable_records

List records from an ipost DataTable. Returns records including id and attributes (user-defined DataTable column values). Maximum 100 records per call; use the `start` body parameter to set the pagination offset. Required: datatable_id.

i_post_datatable_records_bulk_update

Add or update records in an ipost DataTable. Accepts a JSON body with record data whose fields correspond to the user-defined columns of the specified DataTable. Required: datatable_id.

get_single_i_post_data_table_attribute_by_id

Retrieve all attributes of a specific ipost Data Table by its id. Returns: status, and a data array where each attribute includes data_type, label, key, and required. Required: id.

delete_a_i_post_asset_by_id

Delete an asset in ipost by id. Returns an empty 204 response on success. Required: id.

get_single_i_post_bulk_import_by_id

Get the status of a bulk import in ipost by id. Returns: id, status (one of: 'new', 'inprogress', 'completed', 'error'). Required: id.

create_a_i_post_auth_session

Create an ipost authentication session by submitting credentials. Returns: data (containing token, valid_for, and expires) and status. The token has a fixed validity window and must be re-issued after expiry. Required: client_id, client_secret.

create_a_i_post_contacts_upsert

Add or update a contact record in ipost using the addUpdate endpoint. Returns: contact_id, email, properties. Required: client_token, email.

get_single_i_post_contacts_blob_by_id

Retrieve an iPost contact using the blob, an encrypted token that encodes contact identity and is optionally appended to tracked email links. Returns the contact's email, contact_id, and properties. Required: id.

update_a_i_post_contacts_blob_by_id

Add or update one or more iPost contacts on a list using the blob, an encrypted token that identifies the contact via tracked email links. Returns the contact's email, contact_id, and properties. Required: id.

get_single_i_post_contact_statuses_blob_by_id

Retrieve iPost contact status information for a subscriber identified by their encrypted blob token — an optional URL parameter appended to tracked links that encodes the contact's identity. Returns the contact's identification and subscription status including ContactID, Email, GlobalEmailStatus, and GlobalMobileStatus. Required: client_token, blob.

delete_a_i_post_lists_empty_by_id

Empty an ipost list by removing all contacts from it. Returns an empty 204 response on success. Required: id.

create_a_i_post_process_automations_start

Start a process automation in ipost for the specified automation_id. Initiates the automation only when its status is active; the call returns an error if the automation's status is stopped, draft, or paused. Returns an empty 204 response on success. Required: automation_id.

i_post_contact_lists_blob_bulk_create

Bulk add a contact to one or more iPost lists using the blob token mechanism. Submits a JSON body against the contact identified by id to associate them with lists via blob. Returns an empty 204 response on success. Required: id.

Why Truto

Why use Truto’s MCP server for iPost

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 500+ 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 iPost in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s iPost account

Use Truto’s frontend SDK to connect your customer’s iPost 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 iPost

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

04

Unified response format

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

FAQs

Common questions about iPost on Truto

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

How do end users authenticate their iPost account?

Truto handles the iPost auth handshake for your end users via create_a_i_post_auth_session, so you don't need to build credential capture, token refresh, or session management yourself.

Can we use a primary key other than email address?

Yes. iPost natively supports custom primary identifiers (like Player ID or Member ID). Use create_a_i_post_contacts_upsert to map your platform's unique user ID to the iPost contact record, avoiding deduplication issues common with email-keyed ESPs.

How do we push high-volume transactional data without rate limit issues?

Use the bulk endpoints — i_post_contacts_bulk_create, i_post_contact_lists_bulk_create, i_post_list_contacts_bulk_create, and i_post_datatable_records_bulk_update — to batch writes. For backfills, get_single_i_post_bulk_import_by_id lets you poll long-running import jobs.

How do we pass event-specific data into a triggered email?

When enrolling a contact via create_a_i_post_journey_automation, include a Properties payload. These values override contact data only for that send, so you can inject one-time tokens, dynamic QR codes, or location-specific details without mutating the underlying contact record.

Can we identify users from email link clicks without a login flow?

Yes. iPost blob tokens are encrypted identifiers appended to links. Your landing page can call get_single_i_post_contacts_blob_by_id or get_single_i_post_contact_statuses_blob_by_id to resolve the user, then call update_a_i_post_contacts_blob_by_id or i_post_contact_lists_blob_bulk_create to update state.

How do we handle suppression without exposing plaintext emails?

Use create_a_i_post_md_5_list_contact to push MD5-hashed emails into a suppression list. This is especially useful for gaming, healthcare, and other regulated verticals where PII handling is restricted.

Can we manage custom contact fields and schema?

Yes. Use create_a_i_post_column, list_all_i_post_columns, and delete_a_i_post_column_by_id to manage contact columns, and create_a_i_post_datatable plus get_single_i_post_data_table_attribute_by_id to provision relational DataTables for transactional history.

iPost

Get iPost integrated into your app

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