Contact Us

Case study

Marketing automation case study: SMS campaigns and opt-in workflows for financial advisors

ResultCompliance handling on recurring campaigns: down almost 35 to 45%

Client
A client serving financial advisory teams (anonymised)
Industry
Financial services: financial advice
Service
Marketing and workflow automation
Type
SMS and MMS messaging platform
Timeline
6 months
Status
In use

This marketing automation case study is about the texts financial advisors send their clients: one-to-one messages, bulk SMS and MMS campaigns, and the opt-in workflows behind them. We built one platform over three messaging providers, so advisors run conversations, campaigns, opt-ins and reporting from one place. Teams with recurring campaigns now do almost 35 to 45% less compliance handling.

Almost 35 to 45%
less compliance handling for teams with recurring campaigns
Under 2 seconds
for a message to arrive in most active conversations, down from 4 to 6
An estimated 25 to 35%
of messaging inconsistencies between providers removed, in multi-provider testing
6 months
to build and deliver

The challenge: one client conversation across three messaging providers

Before the build, advisors worked across separate tools and manual processes. They wanted one messaging system made for financial services teams, showing how campaigns performed, how clients engaged and what had been said, while helping teams meet compliance requirements and deliver messages reliably.

The platform needed to meet four requirements:

  • Different provider formats. Each messaging provider had its own API, behaviour and webhook format, and message data had to stay in step across all of them without inconsistencies or duplicate records.
  • Real-time updates across devices. Advisors wanted message updates to reach team members and their devices as they happened, because delays or sync problems affect whether a conversation is shown correctly.
  • Metrics at volume. Response rates, link clicks, appointments booked and conversation grouping had to be counted promptly across high volumes of messages.
  • Reliable bulk sends. Campaigns brought queues, deliverability and throttling to manage, along with slow GraphQL queries, large media attachments and checks to ensure each message was sent once.

What we built: SMS marketing automation on one layer over three providers

We built both the front end and the back end: messaging workflows, live tracking and campaign management for advisory teams, at scale. Six pieces carry it:

  • One message model for every provider. A provider abstraction layer gives the three providers one message model, with an adapter for each. Provider actions are standardised, and the next provider is easier to add. During multi-provider testing, this layer removed an estimated 25 to 35% of messaging inconsistencies between providers.
  • Opt-in and keyword templates. Ready-made workflow templates for opt-ins and keywords, which each business can customise, and workflows that teams adjust with rules of their own.
  • No duplicate messages. Tracking and validating each provider's own message ID stops duplicates.
  • Live updates across devices. GraphQL subscriptions and WebSocket event triggers push message activity across users and devices as it happens.
  • Background jobs and caching. Sidekiq jobs process bulk campaigns, emails, media and provider sync. Redis caches phone number lookups, temporary message data and tokens, and batch-loading in the GraphQL resolvers cuts N+1 queries. Together, the caching and batch-loading saved about 30 to 40% of unnecessary backend load, so dashboards respond faster when many messages go out.
  • Reporting. Daily batch pipelines calculate the metrics, group conversations and track engagement, and click tracking shows how each campaign performs.

The stack also includes React for the interface, PostgreSQL, Heroku and CircleCI.

One message model over three providers

Providers

  • Provider one

    Its own API and webhook format

  • Provider two

    Its own API and webhook format

  • Provider three

    Its own API and webhook format

The layer

  • One message model, with an adapter for each provider

    Duplicates stopped by each provider's own message ID

Advisors

  • Conversations, campaigns, opt-ins and reporting

    Run from one place

In multi-provider testing the layer removed an estimated 25 to 35% of messaging inconsistencies between providers, and the next provider is easier to add.

Where the automation stops, and who takes over

There's no AI model in this one: every automated step is code following a rule someone set, from the opt-in templates to the provider adapters. The advisors run the conversations and the campaigns, and the platform handles the repeated work around them.

Who does what in an advisor's messaging

  1. 01The advisory team

    Writing to a client, one to one

    The advisor

  2. 02The advisory team

    Running a bulk campaign

    The advisory team, with sending processed in background jobs

  3. 03The platform

    Handling opt-ins and keywords

    Workflow templates, customised by the business

  4. 04The platform

    Applying a team's own rules

    Workflows set at team level

  5. 05The platform

    Sending and receiving through each provider

    One message model, with an adapter per provider

  6. 06The platform

    Stopping duplicate messages

    Checks on each provider's message ID

  7. 07The platform

    Showing new messages across devices

    GraphQL subscriptions over WebSockets

  8. 08The platform

    Counting responses, clicks and appointments booked

    Daily batch pipelines and click tracking

  9. 09The advisory team

    Managing compliance requirements

    The advisory team, in the same system

This is the split our workflow automation starts from: code for the steps that never change, and people for the decisions. A model goes only on a step that needs reading or judgement, and none went into this platform.

Results

Before and after the build

  • Compliance handling work, teams with recurring campaigns

    BeforeCompliance workload before the shared workflow

    AfterDown almost 35 to 45%

  • Time for a message to arrive, most active conversations

    Before4 to 6 seconds

    AfterUnder 2 seconds

  • Messaging inconsistencies between providers, in multi-provider testing

    BeforeMulti-provider consistency before the adapter layer

    AfterAn estimated 25 to 35% removed

  • Unnecessary backend load

    BeforeBackend load before caching and batch-loading

    AfterAbout 30 to 40% saved

  • Where advisors manage their messaging

    BeforeDisjointed tools and manual processesAfterOne system, better organised

Link tracking and engagement reporting show advisors quickly how clients respond, and the adapter design makes the next provider easier to add.

Technologies and tools

  • React
  • GraphQL
  • PostgreSQL
  • Redis
  • Sidekiq
  • WebSockets
  • Heroku
  • CircleCI

Timeline

The build took six months.

If your team's work runs through several systems and the same steps repeat every week, our business process automation services start with a written plan for what happens when a step fails. When the hard part is connecting the systems themselves, our AI integration services list the connectors we build and what each one reads and writes.

ServiceAI integration services

Bring us the messaging your team manages across separate tools

Tell us which providers you use, how clients opt in and what your team reports on. An engineer replies within two business days with which routine steps a workflow can support and which conversations and decisions should stay with your advisors.