Docs
dataflows.com.au ↗ Get API Token

DataFlows Documentation

Everything you need to integrate SMS into your business — integrations, API reference, and developer guides.

Base URL https://sms.dataflows.com.au
💡 All API endpoints require a Bearer token. Tokens are generated in the DataFlows dashboard under Developers → Settings.

Integrations

Connect DataFlows SMS to your existing tools — no API code required.

Zapier
6,000+ app automations
🔷
Power Automate
Microsoft 365 workflows
💬
Microsoft Teams
SMS inside Teams
🛍️
Shopify
Order notifications & campaigns
🔵
WordPress
WooCommerce SMS
⚙️
Supabase
SMS OTP authentication
🔐
Auth0
SMS MFA & passwordless
📧
Email to SMS
Send SMS from Outlook/Gmail

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

HeaderValueRequired
AuthorizationBearer YOUR_API_TOKENRequired
Acceptapplication/jsonRequired
Content-Typeapplication/jsonPOST / PATCH requests

Getting Your Token

1

Log in to your DataFlows dashboard

Go to sms.dataflows.com.au and sign in.

2

Navigate to Developers → Settings

Find the API Tokens section in the left sidebar under Developers.

3

Create a new token

Click Add New Token, give it a name, and copy the generated token immediately — it won't be shown again.

⚠️ Keep your API token secret. Never expose it in client-side JavaScript or commit it to version control. Use environment variables.

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:

Success
{
  "status": "success",
  "data": { ... }
}
Error
{
  "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.

DataFlows is an official Zapier integration. Find it on the Zapier App Directory →

Setup

1

Create a DataFlows account

Sign up at sms.dataflows.com.au/register and get your API token from Developers → Settings.

2

Connect DataFlows in Zapier

In your Zap, search for "DataFlows SMS" and click Connect Account. Paste your API token.

3

Choose a trigger or action

Select from the available DataFlows triggers and actions below.

4

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.

FieldDescription
recipientPhone number(s) with country code. Comma-separate for multiple.Required
sender_idSender name or number (max 11 alphanumeric characters).Required
messageSMS message body. You can insert dynamic data from your trigger.Required
schedule_timeOptional 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).

FieldDescription
group_idThe contact list UID to add the contact to.Required
PHONEPhone number with country code.Required
FIRST_NAMEContact first name.Optional
LAST_NAMEContact 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.

💡 Power Automate uses the HTTP built-in action (Premium connector) to call the DataFlows API. No custom connector installation needed.

Sending SMS from Power Automate

Add an HTTP action to your flow with the following configuration:

FieldValue
MethodPOST
URIhttps://sms.dataflows.com.au/api/v3/sms/send
HeadersAuthorization: Bearer YOUR_API_TOKEN
Accept: application/json
Content-Type: application/json
Body (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

1

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.

2

Connect your DataFlows account

Open the app tab, click Connect Account, and enter your API token from the DataFlows dashboard.

3

Configure your Sender ID

Select which Sender ID to use for outbound messages from your DataFlows account.

4

Start messaging

Use the app tab to compose and send SMS. Inbound replies will appear in your configured Teams channel in real time.

💡 For enterprise deployments, contact [email protected] for assistance with tenant-wide installation and permissions.

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.

🛍️ Install from the Shopify App Store →

Setup

1

Install from Shopify App Store

Go to apps.shopify.com/dataflows-sms and click Add app.

2

Connect your DataFlows account

In Shopify Admin → Apps → DataFlows SMS, enter your API token from the DataFlows dashboard and click Connect.

3

Select your Sender ID

Choose which branded Sender ID to use for all outbound Shopify SMS.

4

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.

NotificationTriggerAvailable Variables
Order ConfirmationNew order placed{{customer.first_name}} {{order.name}} {{shop.name}}
Shipping UpdateOrder fulfilled{{customer.first_name}} {{order.name}} {{tracking_url}}
Out for DeliveryTracking status update{{customer.first_name}} {{order.name}}
DeliveredOrder delivered{{customer.first_name}} {{shop.name}}
Order CancelledOrder cancelled{{customer.first_name}} {{order.name}}
Refund ProcessedRefund issued{{customer.first_name}} {{order.name}}
Welcome SMSNew customer account{{customer.first_name}} {{shop.name}}
Abandoned Cart RecoveryCart 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.

🔒 DataFlows is ACMA-registered and fully compliant with the Spam Act 2003. The STOP keyword is always active and cannot be disabled.

WordPress / WooCommerce Integration

Automated SMS order notifications for WooCommerce stores. Order confirmation, shipping updates, abandoned cart recovery, and more.

Setup

1

Install the DataFlows SMS Plugin

Download the plugin from the WordPress Plugin Directory or install via Plugins → Add New → DataFlows SMS.

2

Enter your API token

Go to DataFlows SMS → Settings in WordPress Admin. Paste your API token and click Test Connection to verify.

3

Select your Sender ID

The Sender ID dropdown auto-loads from your DataFlows account. Click Refresh if it doesn't appear immediately.

4

Enable notifications

Go to DataFlows SMS → Templates and toggle on the notification types you want. Customise each message template.

Automated Notifications

NotificationTriggerVariables
Order ConfirmationNew order at checkout{customer_name} {order_number} {total}
Order ShippedStatus changed to Completed{customer_name} {order_number}
Order CancelledOrder cancelled{customer_name} {order_number}
Refund ProcessedFull refund issued{customer_name} {order_number}
Welcome SMSNew customer account created{customer_name} {shop_name}
Abandoned Cart RecoveryCart 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.

DataFlows is listed as a supported SMS provider in the official Supabase Auth documentation.

Configuration

1

Enable Phone Auth in Supabase

In the Supabase dashboard, go to Authentication → Providers → Phone and enable it.

2

Select DataFlows as provider

In the SMS Provider dropdown, select DataFlows.

3

Enter your API credentials

Paste your DataFlows API token and your Sender ID. Save the settings.

4

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.
💡 DataFlows routes OTP messages as 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.

🏆 DataFlows is listed on the official Auth0 Marketplace as a verified SMS MFA 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

1

Install from Auth0 Marketplace

Search for "DataFlows" in the Auth0 Marketplace and click Add Integration.

2

Configure SMS factor in Auth0

In Auth0 Dashboard → Security → Multi-factor Auth → SMS, select DataFlows as your SMS provider.

3

Enter your API credentials

Provide your DataFlows API token and Sender ID in the SMS provider configuration.

4

Enable MFA in your Auth0 policy

Configure your Auth0 MFA policy to require SMS for the appropriate user segments.

💡 For full setup instructions including Actions and Rules configuration, contact [email protected].

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 FieldMaps To
ToThe DataFlows email gateway address (from your dashboard)
SubjectRecipient phone number(s) with country code (e.g. 61412345678)
BodyThe SMS message text

Setup

1

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.

2

Add a contact in Outlook or Gmail

Save your DataFlows gateway address as a contact for quick access when composing.

3

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.

⚠️ Email to SMS uses your standard DataFlows SMS credits. The Sender ID used will be the default Sender ID configured on your account.

SMS API

Send individual SMS messages or broadcast campaigns to contact lists. Schedule messages in advance or send immediately.

Base URL https://sms.dataflows.com.au

Send SMS

POST /api/v3/sms/send
Send an SMS to one or more phone numbers immediately or at a scheduled time.
ParameterTypeDescription
recipientstringPhone number(s) with country code. Comma-separate for multiple: 61412345678,61498765432Required
sender_idstringSender name or number. Alphanumeric, max 11 characters.Required
typestringUse plain for standard SMS.Required
messagestringThe SMS message body.Required
schedule_timedatetimeSchedule the send time. Format: Y-m-d H:i (e.g. 2026-06-01 09:00).Optional
dlt_template_idstringDLT content template ID if applicable.Optional
Example — Single recipient
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!"
  }'
Example — Multiple recipients with schedule
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

POST /api/v3/sms/campaign
Send an SMS campaign to all contacts in one or more contact lists.
ParameterTypeDescription
contact_list_idstringContact list UID. Comma-separate for multiple lists.Required
sender_idstringSender name or number.Required
typestringUse plain.Required
messagestringThe SMS message body.Required
schedule_timedatetimeOptional scheduled send time.Optional
dlt_template_idstringDLT template ID.Optional

View a Message

GET /api/v3/sms/{uid}
Retrieve a single SMS message by its unique ID returned at creation.

List All Messages

GET /api/v3/sms/
Returns a paginated list of all SMS messages on your account.

View a Campaign

GET /api/v3/campaign/{uid}
Retrieve a campaign by its unique ID.

OTP API

Send one-time passwords and verification codes via SMS. OTP messages receive delivery priority for the fastest possible delivery.

💡 OTP uses the same /api/v3/sms/send endpoint as the SMS API. The only difference is "type": "otp" instead of "type": "plain".

Send OTP

POST /api/v3/sms/send
Send an OTP or verification code SMS. Use type: "otp" for delivery priority.
ParameterTypeDescription
recipientstringPhone number with country code.Required
sender_idstringSender name or number.Required
typestringMust be otp for OTP/verification messages.Required
messagestringThe 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

POST/api/v3/contacts
ParameterTypeDescription
namestringName 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

GET/api/v3/contacts/{group_id}/show/
Retrieve details and metadata for a specific contact group.

Update a Group

PATCH/api/v3/contacts/{group_id}
ParameterTypeDescription
group_idstringContact group UID (in URL path).Required
namestringNew name for the group.Required

Delete a Group

DELETE/api/v3/contacts/{group_id}
Permanently delete a contact group and all its contacts.

List All Groups

GET/api/v3/contacts/
Returns a paginated list of all contact groups on your account.

Contacts API

Add, update, search, and remove individual contacts within a contact group.

Create a Contact

POST/api/v3/contacts/{group_id}/store
ParameterTypeDescription
group_idstringContact group UID (in URL path).Required
PHONEnumberPhone number with country code.Required
FIRST_NAMEstringContact first name.Optional
LAST_NAMEstringContact 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

GET/api/v3/contacts/{group_id}/search/{uid}
Retrieve a single contact by their UID within a group.

Update a Contact

PATCH/api/v3/contacts/{group_id}/update/{uid}
ParameterTypeDescription
PHONEnumberUpdated phone number.Required
FIRST_NAMEstringUpdated first name.Optional
LAST_NAMEstringUpdated last name.Optional

Delete a Contact

DELETE/api/v3/contacts/{group_id}/delete/{uid}
Permanently remove a contact from a group.

List All Contacts in a Group

GET/api/v3/contacts/{group_id}/all
Returns a paginated list of all contacts in the specified group.

Profile API

Check your SMS credit balance and retrieve account profile information.

Check Balance

GET/api/v3/profile/balance
Returns your current SMS credit balance.
curl -X GET https://sms.dataflows.com.au/api/v3/profile/balance \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Accept: application/json'
Response
{
  "status": "success",
  "data": {
    "balance": 4823,
    "currency": "SMS credits"
  }
}

View Profile

GET/api/v3/profile/me
Returns your account profile including name, email, plan, and settings.
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:

Success
{
  "status": "success",
  "data": { ... }
}
Error
{
  "status": "error",
  "message": "A human-readable description of the error."
}
💡 Need help? Email [email protected] or visit dataflows.com.au/contact-us.