Instasent
MessagingConnect AI agents to Instasent, a Spanish messaging platform combining an SMS gateway with a customer data platform. Agents send transactional SMS, run number lookups, push contacts and events into the audience, and query segments and campaigns so messaging and customer data stay in sync.
What This Integration Enables
Instasent is a Spanish platform that is really two products sharing a name: a wholesale SMS gateway and a customer data platform. They have separate base URLs, separate tokens that are not interchangeable, and separate reasons to exist. The transactional half sends messages, runs HLR lookups, and reports balance and per-country pricing. The product half holds projects, data sources, ingest streams, a unified audience with an event timeline, segments, campaigns, automations, and project-scoped messaging. This connector covers both, and takes at least one of the two tokens, so a flow that only needs to send never has to hold a credential that can read the audience.
The distinction that matters when designing on top of it is what the durable object is. On a plain SMS gateway the message is the record and the recipient is a string on it. Here the audience contact is the record: identities from several data sources are merged into one, events accumulate against it, segments are computed from it, and campaigns and automations read from it. Get Audience Contact By User ID will resolve an audience id, a data source contact id, or the value of any unique attribute to that single contact, which is a fair summary of the whole design philosophy. A send is something that happened to a contact, not the other way around.
Three constraints belong in any real flow. Retention windows are real and they vary: transactional message listings cover messages charged in the last twenty-one days, event search and scrolling cover the last hundred and eighty days on paid plans and thirty on the free plan, and project message listings cover twelve months by contact but three months for automation and direct traffic. Scopes are real too. Product API tokens carry only the scopes checked off when they were created, several of those scopes are additionally gated by the organization's subscription plan, and how many contact fields a response carries depends on both, so actions that scroll, aggregate, or read events can legitimately return a forbidden response on a plan that does not include them. And the scroll cursors encode internal query state and expire after a minute of inactivity, so paging is something to consume promptly rather than resume tomorrow. There are no triggers, because the transactional callback URL is set per token in the dashboard with no subscription API and the product-side webhooks are not yet published, which makes Get Transactional SMS and Get Project SMS Message the delivery reads.
Without FlowRunner
With FlowRunner
Use Case Scenarios
Consent reconciled against the record every campaign reads
Consent gets captured in a lot of places: a checkout box, a preference center, a reply to a support email, a form filled in at an event. The agent gathers those, then does the part that actually matters, which is resolving each one to a single audience contact with Find Audience Contacts By Phone or Find Audience Contacts By Email rather than treating a phone number as an identity. For each resolved contact it looks for supporting evidence in List Audience Contact Events and Search Audience Events. Some it finds. Some it does not, because the event predates the retention window the plan covers, and that is a fact worth reporting rather than working around. It presents all three groups and holds the write.
Ingest, segment, and know how big the segment actually is
Contact and event data arrives from the shop, the app, and the CRM. The agent reads Get Stream Specs to learn what attributes and events a stream will accept, then batches them through Push To Stream, which reports success and failure counts alongside the rejected items so bad records surface as automation exceptions rather than disappearing. Get Data Source Stats gives total and errored counts per source, which is the health check nobody builds until the first silent ingest failure. On the other side, Count Audience Contacts gives an exact match count with no rows returned, which is the cheap way to size a segment before committing to anything, and Aggregate Audience Contacts turns the audience into grouped statistics that land in Google Sheets next to revenue.
Transactional sending that reconciles back to a person
A password reset or an order code goes out through Send Transactional SMS, or in batches of up to a hundred through Send Bulk Transactional SMS, where accepted and rejected messages come back side by side rather than as one verdict. Get Transactional SMS reads the outcome, since there is no delivery trigger to wait on. Where the message should be attributed to a customer rather than to a phone number, Send Direct SMS is the better path: it sends from a project sender to an audience contact, supports link shortening and an unsubscribe token in the body, and the result is retrievable afterward with List SMS Messages By Contact. When the reconciliation finds a contact that should not exist at all, a test record, a duplicate identity, a person who asked to be removed entirely, the agent does not call Delete Audience Contact. It reports the case, because deleting the contact destroys the event timeline that was the only evidence of what was agreed and when.
Human-in-Loop Highlight
The gate on Instasent is Manage Audience Subscription, and it earns that place because of the platform's own architecture rather than because consent is a sensitive-sounding word. This action sets suppression or marketing consent for one contact on the SMS or Email channel, and that contact record is what every campaign, every automation, and every dynamic segment on the project reads from. So a write here does not affect one message. It changes the audience of everything that runs afterward, including flows nobody involved in this decision is thinking about. Setting consent to true is the direction that matters, because it is a claim made on a person's behalf, and the person is not in the room.
What makes it a genuine gate rather than a ceremonial one is that the evidence expires. The justification for a consent change lives in the event timeline, and Instasent's retention windows mean that timeline is finite: event search and scrolling reach back a hundred and eighty days on paid plans and thirty on the free one. An opt-in captured last spring may simply not be readable anymore. The agent cannot prove what it cannot retrieve, and the honest thing to do with that is say so rather than proceed on the assumption that the record used to be there.
So the pause carries the split. Into Slack: "42 consent changes to apply on project Retail ES. 31 have a matching event inside the window, source and timestamp attached. 8 resolve to a contact but the justifying event predates the 180-day event window, so I cannot show you what they were based on. 3 could not be resolved to any audience contact at all. Apply the 31, or all 39 resolved, or hold the 8?" A person answers that in the Flow conversation, and their answer is what runs Manage Audience Subscription. That is human-in-the-loop under Orchestration as a Service: the agent did the resolution, the evidence gathering, and the sorting, and handed over the one decision that turns on judgment about people rather than about data. Two other operations deserve their own pause. Delete Audience Contact removes the contact and, with it, the timeline that was the record of what was agreed, which makes it a worse outcome than a suppression in almost every case where somebody wants to stop hearing from you. Create Data Source returns a write-only token exactly once, so a flow that logs the response is logging a live credential into an execution record.
Agent Capabilities
55 actionsTransactional SMS
4- Send Transactional SMS Sends one message to one recipient and returns the message entity with its id, status, encoding, billed part count, and price. The billed part count in the response is what makes cost reconcilable per message rather than per invoice.
- Send Bulk Transactional SMS Sends up to a hundred messages in one call, each with its own sender, recipient, and text. Partial success is explicit: accepted and rejected messages come back side by side, so a batch never reports as uniformly clean.
- List Transactional SMS Pages through submitted messages, newest first, covering messages charged in the last twenty-one days. Reconciliation needs to happen inside that window rather than at quarter end.
- Get Transactional SMS Returns one message by its Instasent id. This is the delivery read that stands in for the webhook this connector cannot subscribe to.
Number Lookup
3- Create Number Lookup Runs an HLR lookup returning live status, current network, ported and roaming flags, and carrier detail where it is exposed. Billed per number, so a sweep across an unclean list is a spend rather than a validation.
- List Number Lookups Pages through previous lookups. The read that lets a flow reuse an answer already paid for instead of buying it twice.
- Get Number Lookup Returns one lookup by id, which is how a result that was still processing gets read back later.
Account and Pricing
3- Get Account Balance Returns available funds and currency for the organization. The check before a batch is proposed.
- Get SMS Country Prices Returns per-country SMS prices for the account's price profile. Used to model a market before entering it rather than after the invoice.
- Get Lookup Country Prices Returns per-country lookup prices for the account's price profile. Number lookup is billed separately from sending, so forecasting a validation sweep needs its own figure.
Organization and Projects
5- Get Organization Info Returns an organization summary, the projects the token can reach, and the scopes it was granted. The cheapest credential check, and the read that explains a forbidden response before anyone starts debugging one.
- Get Project Returns one project's configuration: locale, timezone, default SMS sender, auto-creation and opt-in settings, and attribution windows. Worth reading rather than assuming, since these differ per project.
- List Project Attribute Specs Returns every contact attribute enabled on a project with its data type and its unique, readonly, and custom flags. The schema read that keeps an ingest step from inventing field names.
- List Project Event Specs Returns every event type available on a project. The other half of the schema, and the check before an event push.
- Get Event Parameter Specs Returns the parameter schema of one event type. Used to build a well-formed event rather than discovering the shape from a rejection.
Data Sources
4- List Data Sources Returns API data sources on a project with their audience tags and write tokens. The inventory behind any ingest design.
- Create Data Source Creates an API data source and returns its write-only token. That token is returned once, so anything logging the response is logging a live credential into an execution record.
- Get Data Source Returns one data source by id, or resolves the project's first API source. The read that confirms where a push is actually going.
- Get Data Source Stats Returns total and errored contact counts for a data source. The health check that catches a silently failing ingest before a segment quietly shrinks.
Data Streams
5- Get Stream Info Returns the active stream attached to a data source. The starting point for any ingest flow.
- Get Stream Specs Returns the attributes, events, or event parameters a stream accepts. Reading this first is the difference between a rejected batch and a clean one.
- Get Stream Contact Returns a contact as the data source holds it, before merging into the unified audience. Useful for debugging why a merge produced something unexpected.
- Push To Stream Ingests a batch of contacts or events, reporting success and failure counts along with the rejected items, with optional synchronous processing. The rejected items are the part worth routing to a person.
- Delete From Stream Removes a user's records from a data source stream. This affects one source's view rather than the unified contact, which is a narrower act than deleting the audience record.
Audience
12- Get Audience Contact By User ID Resolves an audience id, a data source contact id, or the value of any unique attribute to a single contact. The most flexible identity resolution on the platform, and the one to reach for when the identifier's origin is unknown.
- Find Audience Contacts By Phone Looks up contacts by phone number, normalized automatically. The entry point for anything arriving from an inbound message or a support ticket.
- Find Audience Contacts By Email Looks up contacts by email address. The counterpart for requests arriving through an inbox rather than a handset.
- Get Audience Contact Returns one unified contact by internal id. Used once a prior call has already resolved the identity.
- List Audience Contact Events Returns the latest five events of each type for a contact. The compact timeline view, and often enough evidence to explain why a person is where they are.
- Search Audience Contacts Runs an Audience Query Filter search, first page only, up to fifty contacts. The exploratory read rather than the exhaustive one.
- Count Audience Contacts Returns an exact match count with no contact rows. The cheap way to size a segment before deciding whether to act on it.
- Aggregate Audience Contacts Returns grouped counts and statistics over the audience. Turns the contact database into reporting without an export step in between.
- Scroll Audience Contacts Pages through the whole audience with a cursor, up to a hundred contacts per page. Cursors expire after a minute of inactivity, so a scroll is something to consume rather than pause.
- Scroll Segment Contacts Pages through the contacts in one segment. The read behind exporting an audience to another system or verifying who a campaign will actually reach.
- Manage Audience Subscription Sets suppression or marketing consent for one contact on the SMS or Email channel. This writes to the record every campaign, automation, and dynamic segment reads from, so setting consent affects far more than the message in front of you.
- Delete Audience Contact Removes a contact from the project, taking the event timeline with it. That timeline was the evidence of what was agreed and when, which usually makes suppression the better answer to a removal request.
Events
4- Search Audience Events Runs an Audience Event Query Filter search, first page only, up to fifty events. Covers the last hundred and eighty days on paid plans and thirty on the free plan.
- Aggregate Audience Events Returns aggregations over events. The analytics read for behavior rather than for the audience roster.
- Scroll Audience Events Pages through events with a cursor, up to a hundred per page. Same cursor expiry rule as the contact scroll.
- Scroll Audience Events By Attribution Pages through events attributed to one campaign, one automation, or the direct channel, optionally narrowed to a single event type. This is what connects a send to what people did afterward.
Segments
3- List Segments Returns the segments defined on a project. The audience inventory a campaign is planned against.
- List Dynamic Segments Returns dynamic segments, which recompute rather than hold a fixed roster. Worth distinguishing, because a dynamic segment's size at approval is not its size at send.
- Get Segment Returns one segment including its live contact total. The read that turns a segment name into a number a person can react to.
Campaigns and Automations
4- List Campaigns Returns campaigns built in the Instasent dashboard. The bridge between what marketers set up in the interface and what a flow can reason about.
- Get Campaign Returns one campaign. Used to confirm what a reporting step is attributing results to.
- List Automations Returns event-triggered message flows defined on the project. Knowing which automations exist is how a flow avoids duplicating a message the platform already sends.
- Get Automation Returns one automation. The read behind attributing traffic to the right sequence.
Direct SMS and Message Reporting
8- List SMS Senders Returns senders registered on a project. The check before composing a project-scoped send around a sender identity.
- Send Direct SMS Sends one SMS to an audience contact or a phone number, from a project sender or the project default, with link shortening, an unsubscribe token, and a custom tracking term. Sending to a contact rather than a number is what makes the result attributable afterward.
- Get Project SMS Message Returns one message sent from a project, by id. The delivery read on the product side, as Get Transactional SMS is on the gateway side.
- List SMS Messages By Contact Returns message-level results for one recipient, covering the last twelve months. The read behind answering what a specific customer has actually received.
- List SMS Messages By Send Returns message-level results for one dispatch record. The reconciliation read for a single run.
- List SMS Messages By Campaign Returns message-level results for a campaign. Covers a shorter window than the by-contact view, so campaign reporting needs to be collected promptly.
- List SMS Messages By Automation Returns message-level results for an automation. The read that shows whether an event-triggered sequence is firing at the volume anyone expected.
- List Direct SMS Messages Returns direct traffic, optionally filtered to one tracking term. The tracking term is what separates one flow's sends from another's inside the same project.
Frequently Asked Questions
What can FlowRunner do with Instasent?
FlowRunner agents can run Send Transactional SMS, Send Bulk Transactional SMS, and List Transactional SMS in Instasent, plus 52 more actions.
Does connecting Instasent to FlowRunner require OAuth?
No. Instasent connects to FlowRunner with an API key, no OAuth flow required.
Can Instasent trigger a FlowRunner workflow automatically?
Instasent doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with Instasent
$100 in credits. No card required. Connect in minutes.