Skip to content
Academy
Marketing Academy · Field Work●Marketing Tools
CoreBuild the Asset· 50 minutes

Build the Sync: A Reverse-ETL Audience Activation Plan for Five-Star Business Finance

Five-Star Business Finance

Objective: Design a complete reverse-ETL activation plan, audience definition, consent filter, sync cadence, and destination, for a realistic MSME lending audience, using the lesson's activation framework.

You're the growth marketer at Five-Star Business Finance, the Chennai-based MSME lender that IPO'd in November 2022. Your CRO wants to stop showing loan top-up ads to customers who already closed their loan last month.

Define the audience query in plain English, choose the collection and destination tools, write the consent filter, and set the sync cadence, then package it as a one-page brief a data engineer could implement without follow-up questions.

Before you start

What you'll need

Free path (everything below is enough to finish)

FreemiumConfirm the event schema the audience depends on

Free tier tracks up to 1,000 monthly visitors, enough to document a tracking plan

FreeSanity-check audience size before committing engineering time

Free and already deployed on most sites; Explorations approximates a warehouse-query result

FreeWrite the final sync brief for the data engineer

No new tool access needed to produce and hand off the spec

The process

2 steps

Step 01 of 02

Reverse ETL as a scheduled or real-time sync from warehouse to destination

The lesson explains reverse ETL reads a SQL query result from the warehouse and writes it to a destination tool, replacing custom per-API scripts, using the example of syncing users who spent over $1,000 but haven't purchased in 30 days straight to Meta Ads.

Five-Star's CRO wants an audience of MSME customers who repaid their current loan in full in the last 60 days but haven't started a new application, a strong top-up candidate. Before you can write that as a warehouse query, what event data does Segment need to be reliably collecting for this audience to even be definable?

Segment— Segment's tracking plan (or, without live access, a written tracking-plan document listing the events).

Procedure

  1. List the exact events needed: loan_disbursed, loan_closed (full repayment), application_started
  2. For each event, confirm it fires with a shared customer id (loan_account_id), not a session or device id
  3. Check for gaps: if 'loan_closed' isn't currently tracked as its own event, this audience can't be built yet
  4. Write the tracking-plan gap as a one-line dev requirement if any event is missing
Sample output
TRACKING PLAN CHECK, Five-Star Business Finance

Event                | Tracked today?                              | Has loan_account_id?
loan_disbursed         | yes                                          | yes
loan_closed             | NO, only a generic 'account_status_changed' with no reason code | n/a
application_started       | yes                                          | yes

Gap: loan_closed doesn't exist as its own event. Add a reason code to account_status_changed, or fire a dedicated loan_closed event, before this audience can be built.

Healthy

Every event the audience needs already fires with a shared id.

Unhealthy

The audience depends on an event that doesn't exist yet, disguised as 'we probably have that data somewhere.'

What this means

A reverse-ETL audience is only as good as the events feeding the warehouse; fix the collection gap before writing the sync.

So what do I do about it?

SymptomActionEffort
Audience defined but 0 rows syncShip the missing event before building the sync, not afterdev ticket
EitherYou or a developer can handle this, depending on your access.

Step 02 of 02

Final deliverable

A one-page reverse-ETL sync brief: query logic, destination, cadence, and consent filter, ready for a data engineer to implement.

See a reference example
Sample output
SYNC BRIEF, Utkarsh Small Finance Bank FD-maturity cross-sell audience

Query logic: fd_matured in last 14 days AND no fd_renewed AND marketing_consent = true
Estimated size: ~3,400 customers/month
Destination: Google Ads Customer Match
Cadence: daily, 6am IST
Consent filter: excludes marketing_consent=false (est. 5% of the pool)

Success criteria

You're done when you can:

  • Identifies at least one event-collection gap before defining the audience
  • Query logic includes a consent filter as part of the query, not a separate step
  • Names a specific destination and sync cadence, not just 'sync to ads'