DataFlows Documentation
Everything you need to integrate SMS into your business — integrations, API reference, and developer guides.
Integrations
Connect DataFlows SMS to your existing tools — no API code required.
API Reference
Full REST API for sending SMS, managing contacts, and checking account status.
📨 SMS API
Send single or bulk SMS, schedule messages, view delivery status.
🔑 OTP API
Send one-time passwords and verification codes via SMS.
👥 Contact Groups
Create and manage contact lists for bulk campaigns.
👤 Contacts
Add, update, and remove individual contacts from groups.
📊 Profile
Check SMS credit balance and account details.
Authentication
All DataFlows API endpoints use Bearer token authentication. Include your token in every request header.
Required Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer YOUR_API_TOKEN | Required |
| Accept | application/json | Required |
| Content-Type | application/json | POST / PATCH requests |
Getting Your Token
Log in to your DataFlows dashboard
Go to sms.dataflows.com.au and sign in.
Navigate to Developers → Settings
Find the API Tokens section in the left sidebar under Developers.
Create a new token
Click Add New Token, give it a name, and copy the generated token immediately — it won't be shown again.
Example Request
curl -X GET https://sms.dataflows.com.au/api/v3/profile/me \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Accept: application/json'
Response Format
All endpoints return JSON with a consistent envelope:
{
"status": "success",
"data": { ... }
}
{
"status": "error",
"message": "A human-readable description of the error."
}
Zapier Integration
Automate SMS workflows with 6,000+ apps — no code required. Trigger SMS from CRM events, form submissions, calendar reminders, and more.
Setup
Create a DataFlows account
Sign up at sms.dataflows.com.au/register and get your API token from Developers → Settings.
Connect DataFlows in Zapier
In your Zap, search for "DataFlows SMS" and click Connect Account. Paste your API token.
Choose a trigger or action
Select from the available DataFlows triggers and actions below.
Map your fields and test
Map your trigger data to the SMS fields and run a test to send a real SMS.
Actions
Send SMS
Send an SMS to one or more recipients from a Zap trigger.
| Field | Description | |
|---|---|---|
| recipient | Phone number(s) with country code. Comma-separate for multiple. | Required |
| sender_id | Sender name or number (max 11 alphanumeric characters). | Required |
| message | SMS message body. You can insert dynamic data from your trigger. | Required |
| schedule_time | Optional scheduled send time (format: YYYY-MM-DD HH:MM). | Optional |
Create Contact
Add a contact to a DataFlows contact list when a Zap trigger fires (e.g. new form submission, new CRM contact).
| Field | Description | |
|---|---|---|
| group_id | The contact list UID to add the contact to. | Required |
| PHONE | Phone number with country code. | Required |
| FIRST_NAME | Contact first name. | Optional |
| LAST_NAME | Contact last name. | Optional |
Analyse Sentiment AI
Run AI sentiment analysis on inbound SMS text and return a sentiment score (positive / neutral / negative). Use in combination with the New SMS Received trigger to auto-route or tag conversations.
Categorise SMS AI
Classify inbound SMS into custom categories using AI. Define category labels (e.g. "Booking Request", "Complaint", "Opt-out") and the AI returns the best match.
Triggers
New SMS Received
Fires when an inbound SMS arrives in your DataFlows inbox. Payload includes the sender number, message body, timestamp, and your sender ID.
Keyword Matched
Fires when an inbound SMS contains a specific keyword (e.g. "STOP", "INFO", "YES"). Configure the keyword in the trigger settings.
SMS Delivery Status
Fires when a sent SMS changes delivery status (Delivered, Failed, Pending). Use to update CRM records or trigger follow-up actions.
Low Balance Alert
Fires when your SMS credit balance drops below a threshold you set. Use to trigger auto top-up or send a Slack alert to your team.
Power Automate Integration
Send automated SMS messages from Microsoft Power Automate and Microsoft 365 workflows — without writing code.
Overview
DataFlows SMS integrates with Power Automate via an HTTP action using the REST API. You can use it in automated cloud flows to send SMS from triggers like SharePoint updates, Microsoft Forms submissions, Outlook emails, Teams messages, and more.
Sending SMS from Power Automate
Add an HTTP action to your flow with the following configuration:
| Field | Value |
|---|---|
| Method | POST |
| URI | https://sms.dataflows.com.au/api/v3/sms/send |
| Headers | Authorization: Bearer YOUR_API_TOKENAccept: application/jsonContent-Type: application/json |
{
"recipient": "@{triggerBody()?['PhoneNumber']}",
"sender_id": "YourBrand",
"type": "plain",
"message": "Hi @{triggerBody()?['FirstName']}, your appointment is confirmed."
}
Common Flow Templates
📋 Microsoft Forms → SMS
Send an SMS confirmation when someone submits a Microsoft Form.
📅 Outlook Calendar → SMS
Send SMS reminders 24 hours before calendar events.
📁 SharePoint → SMS
Notify a contact by SMS when a SharePoint list item changes status.
💬 Teams Message → SMS
Forward a Teams message as an SMS to an external contact.
Sending to a Campaign List
To send to all contacts in a contact list, use the campaign endpoint instead:
{
"contact_list_id": "YOUR_LIST_UID",
"sender_id": "YourBrand",
"type": "plain",
"message": "Your scheduled message here."
}
Endpoint: https://sms.dataflows.com.au/api/v3/sms/campaign
Advanced Scenarios
See the Advanced Power Automate guide for multi-step flows, conditional SMS, and response handling. See Use Cases for industry-specific templates.
Microsoft Teams Integration
Send and receive SMS directly inside Microsoft Teams — no phone needed, no app switching.
Overview
The DataFlows Microsoft Teams integration lets your team send outbound SMS to customers and receive inbound replies in a dedicated Teams channel. All conversations are threaded by contact phone number for easy follow-up.
- Send SMS to any mobile number from Teams
- Receive inbound SMS replies directly in Teams channels
- View full two-way conversation threads
- Use your branded Sender ID
- Works with Teams desktop and mobile apps
Setup
Install the DataFlows Teams App
Go to the Teams App Store, search for "DataFlows SMS", and install it to your organisation or a specific team.
Connect your DataFlows account
Open the app tab, click Connect Account, and enter your API token from the DataFlows dashboard.
Configure your Sender ID
Select which Sender ID to use for outbound messages from your DataFlows account.
Start messaging
Use the app tab to compose and send SMS. Inbound replies will appear in your configured Teams channel in real time.
Shopify Integration
Automated order notifications, abandoned cart recovery, two-way inbox, and bulk SMS campaigns — all inside Shopify Admin. Available on the Shopify App Store.
Setup
Install from Shopify App Store
Go to apps.shopify.com/dataflows-sms and click Add app.
Connect your DataFlows account
In Shopify Admin → Apps → DataFlows SMS, enter your API token from the DataFlows dashboard and click Connect.
Select your Sender ID
Choose which branded Sender ID to use for all outbound Shopify SMS.
Enable notification types
Toggle each of the 8 notification types on or off, and customise the message templates.
Automated Notifications
Each notification type is independently togglable and uses Shopify webhooks for real-time delivery.
| Notification | Trigger | Available Variables |
|---|---|---|
| Order Confirmation | New order placed | {{customer.first_name}} {{order.name}} {{shop.name}} |
| Shipping Update | Order fulfilled | {{customer.first_name}} {{order.name}} {{tracking_url}} |
| Out for Delivery | Tracking status update | {{customer.first_name}} {{order.name}} |
| Delivered | Order delivered | {{customer.first_name}} {{shop.name}} |
| Order Cancelled | Order cancelled | {{customer.first_name}} {{order.name}} |
| Refund Processed | Refund issued | {{customer.first_name}} {{order.name}} |
| Welcome SMS | New customer account | {{customer.first_name}} {{shop.name}} |
| Abandoned Cart Recovery | Cart abandoned (configurable delay) | {{customer.first_name}} {{checkout_url}} |
Two-Way Inbox
The inbox shows iMessage-style conversation threads grouped by customer phone number. View inbound messages and reply directly from Shopify Admin.
Bulk Campaigns
Broadcast to opted-in subscribers with AI-generated copy variants. Target from 9 audience segments: All Subscribers, VIP, Lapsed, At-Risk, Abandoned Cart, Loyalty Members, and more.
Shopify Flow
The app adds a Send SMS action and Add to SMS List action to Shopify Flow, letting you trigger SMS from any Flow event — loyalty points earned, tag added, order tagged, and more.
WordPress / WooCommerce Integration
Automated SMS order notifications for WooCommerce stores. Order confirmation, shipping updates, abandoned cart recovery, and more.
Setup
Install the DataFlows SMS Plugin
Download the plugin from the WordPress Plugin Directory or install via Plugins → Add New → DataFlows SMS.
Enter your API token
Go to DataFlows SMS → Settings in WordPress Admin. Paste your API token and click Test Connection to verify.
Select your Sender ID
The Sender ID dropdown auto-loads from your DataFlows account. Click Refresh if it doesn't appear immediately.
Enable notifications
Go to DataFlows SMS → Templates and toggle on the notification types you want. Customise each message template.
Automated Notifications
| Notification | Trigger | Variables |
|---|---|---|
| Order Confirmation | New order at checkout | {customer_name} {order_number} {total} |
| Order Shipped | Status changed to Completed | {customer_name} {order_number} |
| Order Cancelled | Order cancelled | {customer_name} {order_number} |
| Refund Processed | Full refund issued | {customer_name} {order_number} |
| Welcome SMS | New customer account created | {customer_name} {shop_name} |
| Abandoned Cart Recovery | Cart abandoned (10 min–24 hr delay) | {customer_name} {cart_url} |
Plugin Features
- Test Connection button — confirms API connection and shows your account name
- Sender ID dropdown auto-loaded from DataFlows — no copy-pasting
- International number support — strips spaces, dashes, brackets automatically
- Default country code setting for local numbers
- Dedicated DataFlows SMS menu in WordPress Admin sidebar
Supabase Integration
Use DataFlows as the SMS provider for Supabase Auth — send OTP verification codes and phone-based authentication to Australian numbers.
Overview
Supabase Auth supports pluggable SMS providers. DataFlows integrates as a custom SMS provider using the Twilio-compatible API format, making it simple to configure.
Configuration
Enable Phone Auth in Supabase
In the Supabase dashboard, go to Authentication → Providers → Phone and enable it.
Select DataFlows as provider
In the SMS Provider dropdown, select DataFlows.
Enter your API credentials
Paste your DataFlows API token and your Sender ID. Save the settings.
Test with a phone number
Use Supabase Auth's test flow to send an OTP to a real mobile number and verify delivery.
OTP Message Template
Supabase sends OTP codes using the default template. You can customise the message format in Supabase's SMS template settings. The OTP code is injected as {{ .Code }}.
Your verification code is {{ .Code }}. Valid for 10 minutes.
type: "otp" which receives delivery priority. Australian mobile numbers should receive OTPs within 3–8 seconds.
Auth0 Integration
DataFlows is an official Auth0 Marketplace partner. Add SMS MFA and passwordless login to your Auth0 applications using DataFlows as the SMS provider.
Use Cases
📱 SMS MFA
Add a second factor to your Auth0 login flow using a one-time code sent via DataFlows SMS.
🔑 Passwordless Login
Let users log in with just their phone number — no password required.
Setup
Install from Auth0 Marketplace
Search for "DataFlows" in the Auth0 Marketplace and click Add Integration.
Configure SMS factor in Auth0
In Auth0 Dashboard → Security → Multi-factor Auth → SMS, select DataFlows as your SMS provider.
Enter your API credentials
Provide your DataFlows API token and Sender ID in the SMS provider configuration.
Enable MFA in your Auth0 policy
Configure your Auth0 MFA policy to require SMS for the appropriate user segments.
Email to SMS
Send SMS directly from Outlook or Gmail by composing an email to a special gateway address. No app, no API code — just email.
How It Works
DataFlows provides an email gateway address. Send an email to that address and DataFlows converts the email subject/body into an SMS delivered to the recipient's phone.
Email Format
| Email Field | Maps To |
|---|---|
| To | The DataFlows email gateway address (from your dashboard) |
| Subject | Recipient phone number(s) with country code (e.g. 61412345678) |
| Body | The SMS message text |
Setup
Enable Email to SMS in your DataFlows account
Log in and go to Settings → Email to SMS. Enable the feature and copy your personal gateway address.
Add a contact in Outlook or Gmail
Save your DataFlows gateway address as a contact for quick access when composing.
Send your first SMS
Compose a new email to the gateway address. Enter the recipient phone number in the Subject line, write your message in the body, and send.
SMS API
Send individual SMS messages or broadcast campaigns to contact lists. Schedule messages in advance or send immediately.
Send SMS
| Parameter | Type | Description | |
|---|---|---|---|
| recipient | string | Phone number(s) with country code. Comma-separate for multiple: 61412345678,61498765432 | Required |
| sender_id | string | Sender name or number. Alphanumeric, max 11 characters. | Required |
| type | string | Use plain for standard SMS. | Required |
| message | string | The SMS message body. | Required |
| schedule_time | datetime | Schedule the send time. Format: Y-m-d H:i (e.g. 2026-06-01 09:00). | Optional |
| dlt_template_id | string | DLT content template ID if applicable. | Optional |
curl -X POST https://sms.dataflows.com.au/api/v3/sms/send \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"recipient": "61412345678",
"sender_id": "YourBrand",
"type": "plain",
"message": "Hello from DataFlows!"
}'
curl -X POST https://sms.dataflows.com.au/api/v3/sms/send \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"recipient": "61412345678,61498765432",
"sender_id": "YourBrand",
"type": "plain",
"message": "Hello from DataFlows!",
"schedule_time": "2026-06-01 09:00"
}'
Send Campaign to Contact List
| Parameter | Type | Description | |
|---|---|---|---|
| contact_list_id | string | Contact list UID. Comma-separate for multiple lists. | Required |
| sender_id | string | Sender name or number. | Required |
| type | string | Use plain. | Required |
| message | string | The SMS message body. | Required |
| schedule_time | datetime | Optional scheduled send time. | Optional |
| dlt_template_id | string | DLT template ID. | Optional |
View a Message
List All Messages
View a Campaign
OTP API
Send one-time passwords and verification codes via SMS. OTP messages receive delivery priority for the fastest possible delivery.
/api/v3/sms/send endpoint as the SMS API. The only difference is "type": "otp" instead of "type": "plain".
Send OTP
type: "otp" for delivery priority.| Parameter | Type | Description | |
|---|---|---|---|
| recipient | string | Phone number with country code. | Required |
| sender_id | string | Sender name or number. | Required |
| type | string | Must be otp for OTP/verification messages. | Required |
| message | string | The OTP message. Include the code and expiry time. | Required |
curl -X POST https://sms.dataflows.com.au/api/v3/sms/send \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"recipient": "61412345678",
"sender_id": "YourBrand",
"type": "otp",
"message": "Your verification code is 483920. Valid for 10 minutes."
}'
Integration Examples
See the Supabase and Auth0 integration guides for using OTP with popular authentication platforms.
Contact Groups API
Create and manage contact lists. Use group UIDs when sending campaigns or adding contacts.
Create a Group
| Parameter | Type | Description | |
|---|---|---|---|
| name | string | Name for the contact group. | Required |
curl -X POST https://sms.dataflows.com.au/api/v3/contacts \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{"name": "Newsletter Subscribers"}'
View a Group
Update a Group
| Parameter | Type | Description | |
|---|---|---|---|
| group_id | string | Contact group UID (in URL path). | Required |
| name | string | New name for the group. | Required |
Delete a Group
List All Groups
Contacts API
Add, update, search, and remove individual contacts within a contact group.
Create a Contact
| Parameter | Type | Description | |
|---|---|---|---|
| group_id | string | Contact group UID (in URL path). | Required |
| PHONE | number | Phone number with country code. | Required |
| FIRST_NAME | string | Contact first name. | Optional |
| LAST_NAME | string | Contact last name. | Optional |
curl -X POST https://sms.dataflows.com.au/api/v3/contacts/GROUP_UID/store \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"PHONE": 61412345678,
"FIRST_NAME": "Jane",
"LAST_NAME": "Smith"
}'
View a Contact
Update a Contact
| Parameter | Type | Description | |
|---|---|---|---|
| PHONE | number | Updated phone number. | Required |
| FIRST_NAME | string | Updated first name. | Optional |
| LAST_NAME | string | Updated last name. | Optional |
Delete a Contact
List All Contacts in a Group
Profile API
Check your SMS credit balance and retrieve account profile information.
Check Balance
curl -X GET https://sms.dataflows.com.au/api/v3/profile/balance \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Accept: application/json'
{
"status": "success",
"data": {
"balance": 4823,
"currency": "SMS credits"
}
}
View Profile
curl -X GET https://sms.dataflows.com.au/api/v3/profile/me \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Accept: application/json'
Standard Response Format
All API endpoints return JSON with a consistent response envelope:
{
"status": "success",
"data": { ... }
}
{
"status": "error",
"message": "A human-readable description of the error."
}