iGaming Retention
iGaming CRM: adding the phone channel to your stack
What an iGaming CRM needs to do in 2026, why compliance suppression is the core feature, and how to add phone calls to an email, SMS and push stack via webhook.

An iGaming CRM is less a product than a pipeline: player data in, segments and journeys in the middle, channels out, and outcomes back. The feature that separates a gambling CRM from a retail one is suppression, deciding who you may not contact on each product and channel. Most stacks handle email, SMS and push well and leave phone calls to a VIP host's spreadsheet. Adding phone as a proper journey step, triggered by webhook and writing its outcomes back, closes that gap without changing your CRM.
Ask five retention managers what their iGaming CRM is and you'll get five answers: an iGaming-specific platform, a general journey tool such as Customer.io or Braze, a module inside the player account platform, an in-house data warehouse with a sender bolted on, or some mix of all four. They're all right. What matters is less the logo than whether the pipeline does four jobs well.
The four jobs of an iGaming CRM
1. One record per player. Registration data, deposits and withdrawals, sessions, game and sport preferences, bonus history, support contacts and safer-gambling flags, in one place. Blask's overview of iGaming CRM lists much the same set and adds that the data comes from the player account platform, the game servers and the payment gateway (Blask, iGaming CRM).
2. Segments. Recency, frequency and value, plus lifecycle stage: registered but never deposited, active, lapsing, dormant, VIP. Value isn't spread evenly. In a study of 139,152 British online accounts, the top 20% of gaming accounts by amount staked generated just over 90% of operator revenue (NatCen, Patterns of Play). The same study tied that concentration to heavier losses, so the segments that matter most commercially are also the ones that need the most care.
3. Journeys. Triggered sequences: welcome, first deposit, lapse, win-back, birthday, VIP milestone. Each step is a message in a channel, a wait, or a branch on what the player did.
4. Suppression. Before any message goes out: is this player self-excluded, opted out of this channel, opted out of this product, flagged for harm, or under a cool-off? This is the job that general CRM buyers don't think about and gambling regulators think about most.
Suppression is the core feature
In Great Britain, three licence rules shape every send:
| Rule | What it requires | Source |
|---|---|---|
| SR Code 3.5.3 | Take all reasonable steps to stop marketing reaching self-excluded customers, and remove or flag them in marketing databases within two days of the self-exclusion | Gambling Commission, LCCP section 3 |
| SR Code 5.1.12 | Players opt in to direct marketing per product and per channel, with phone call named as a channel. In force since 1 May 2025 | CMS |
| Customer interaction, requirement 10 | Prevent marketing and the take-up of new bonus offers where there are strong indicators of harm, covering all targeted marketing | Gambling Commission, customer interaction guidance |
Other markets add their own layers. Malta's Player Protection Directive lists "communication-based indicators such as increased player complaints and bonus requests" among the markers of harm a licensee must monitor (MGA, Article 17A), which means your CRM's own contact history is part of the harm picture. National registers differ by country; the self-exclusion registers by country page sets out each one.
The practical consequence: suppression has to sit upstream of every channel, as one list that every sender checks. If email reads one opt-out table and the phone team reads another, a player who self-excluded on Tuesday can still get a call on Thursday. That's the failure regulators fine.
This isn't legal advice. Summaries are as of October 2026 and cover Great Britain and Malta; confirm requirements for each licence with your compliance team.
Where phone usually lives, and why that's a problem
Look at the channel list on most iGaming CRM pages and you'll see email, SMS, push, on-site messages and sometimes WhatsApp or Telegram. Phone calls are rarely a channel the CRM controls. Track360's reactivation playbook rates outbound calling by a VIP host as a high-cost channel because of the human time involved, and reserves it for top-tier lapsed VIPs (Track360).
So phone ends up outside the pipeline. A VIP host exports a list, works through it on their own phone, and types notes into a spreadsheet or a support tool. Three things go wrong:
- Suppression drifts. The export was clean on Monday. By Thursday, two players on it have self-excluded and one has opted out of calls.
- Outcomes don't flow back. The player told the host they'd deposit at the weekend. The CRM doesn't know, so on Saturday morning it sends a win-back email with a bigger bonus.
- Nothing is measured. You can't compare phone against SMS for a segment if phone outcomes never reach the place where the comparison happens.
The cost argument for keeping phone small has also changed. An AI voice agent bills for talk time, not for an agent's shift, so a call that nobody answers costs a few cents rather than a slice of someone's hour. That brings mid-value segments, not just VIPs, into range for a call.
Adding phone as a journey step
The cleanest design treats a call exactly like an email step: the journey decides when, the channel does the work, and the result comes back as data.
Out of the CRM: a webhook. Each Dial Milo campaign has a secret "start a call" URL. Your journey POSTs one player, or up to 500, with their number and context:
{
"phone": "+447700900123",
"name": "James",
"player_id": "123",
"external_id": "evt-1",
"language": "en",
"offer_code": "FS50",
"at": "2026-10-28T18:00:00Z",
"context": { "segment": "lapsed 30d", "favourite_game": "blackjack" }
}
external_id makes the request idempotent, so a re-fired journey doesn't call the player twice. at schedules the call for later. Numbers on the opt-out or safer-gambling exclusion list are rejected automatically, which gives you a second suppression check after your own. The call then waits for the campaign's calling hours in the player's local time, its contact cooldown and its budget.
How you send that request depends on the tool:
- Customer.io has a webhook action in any journey, with a JSON body you personalise from person attributes, an
X-CIO-Idempotency-Keyheader, and retries on timeouts and 5xx errors (Customer.io docs). It points straight at the campaign URL. - Braze, HubSpot workflows or an in-house system can do the same with their own webhook steps.
- Optimove is the one to check carefully. For triggered campaigns, its webhook carries the customer details. For scheduled campaigns, it sends only a notification, and your service then calls Optimove's API to fetch the customer list (Optimove developer docs). That second case needs a small piece of middleware between Optimove and the calling service.
Back into the CRM: attributes and events. With Customer.io, Dial Milo writes the result to the person after every call (milo_last_call_at, milo_last_call_status, milo_last_outcome, milo_last_campaign, milo_last_script, milo_callback_at, milo_opted_out_calls, milo_safer_gambling_flag) and fires events your journey branches on: milo_call_completed, milo_offer_accepted, milo_offer_declined, milo_callback_requested, milo_opted_out and milo_wrong_person. With other tools, you build the write-back from the same outcomes.
The full setup, step by step, is in the Customer.io phone calls guide.
The fields your CRM needs for phone
Before you add a phone step, check that the player record can hold these:
| Field | Why |
|---|---|
| Phone number in international format | Calls fail or go to the wrong country without the +44 or +31 |
| Consent: phone, per product | Required in Great Britain under SR 5.1.12; an email opt-in doesn't count |
| Preferred language | The call should be in the player's language; Dial Milo takes a language per player and switches if the player answers in another |
| Time zone, if not obvious from the number | Calling hours apply in the player's local time |
| Offer code, if any | So each segment hears its own offer and players without one hear none |
| Phone opt-out flag (written back) | So no channel calls again after "stop calling me" |
| Safer-gambling flag (written back) | So every channel stops marketing to that player at once |
| Callback time (written back) | So the CRM doesn't send a competing message before the call the player asked for |
The last three are the ones teams forget, and they're the ones that matter when something goes wrong.
A worked journey: registered, no deposit
This is the chain we use as the reference case. Every figure is illustrative.
- 1
Welcome pack
A player registers. Your CRM sends the usual welcome email and push.
- 2
Wait 48 hours for a first deposit
If they deposit, they leave this journey. If they log in but don't deposit, they move to the next step.
- 3
Webhook to the calling campaign
The journey POSTs the player with
languageandoffer_code. Suppression has already run in the CRM; the calling service checks its own exclusion list again. - 4
The call
Milo calls in the player's language during their local calling hours, says it's an AI, confirms it's speaking to the right person before naming the brand, checks in and offers the welcome bonus with its main condition.
- 5
Branch on the outcome
milo_offer_acceptedsends the SMS and email with the code and full terms.milo_callback_requestedwaits untilmilo_callback_at.milo_opted_outsuppresses phone everywhere.milo_safer_gambling_flagstops all marketing and alerts your team. - 6
One reminder
If there's no deposit 72 hours after an acceptance, one reminder. Then stop.
Say 1,000 players a month reach step three. If 35% answer and 10% of those accept, the call step produces 35 acceptances. You'd then compare first deposits for those players against a holdout group that got the same journey without the call. Blask lists incremental impact against a holdout among the core CRM KPIs, and it's the only honest way to credit a phone step with anything. The registered no-deposit players guide goes deeper on this segment.
Choosing between an iGaming CRM and a general journey tool
| iGaming-specific CRM | General journey tool (Customer.io, Braze, HubSpot) | |
|---|---|---|
| Gambling data model | Usually built in: deposits, bonuses, GGR and NGR | You map it from your player account platform |
| Suppression rules | Often configurable per market | You build them as segments and filters |
| Flexibility | Constrained to the vendor's model | High; any event, any attribute |
| Webhook steps to new channels | Varies by vendor; check scheduled vs triggered behaviour | Standard |
| Cost model | Usually contract-based | Usually per profile or message volume |
Neither choice is wrong. If you already run a general tool well, adding gambling-specific suppression is a few days of careful work. If you run an iGaming CRM, check how it hands a single player to an outside channel in real time, because that's what a phone step needs.
Measuring what each channel contributes
Two habits make the phone channel comparable with the rest:
- Use the same success metric. For reactivation, that's deposits or net revenue from contacted players against a holdout, not acceptances. Players say yes on a call to be polite. The player LTV calculator helps put a value on one retained player so you know what a contact is worth.
- Read the calls, not just the counts. Dial Milo's AI campaign report labels every player with a next step (likely to deposit, move to VIP support, follow up later, stop contacting, safer gambling) and summarises what players pushed back on. That's qualitative data your email channel can't give you.
Costs are easy to model because they're per minute. Outbound with Dial Milo is the phone line, priced for the exact number dialled and your caller ID country and billed per started minute, plus 9.57¢ per minute of AI talk time. For a UK mobile from a UK number the line starts at 8.5¢, so roughly 18¢ a minute all in. Calls that don't connect have no minute charge. Check any route on the rates page.
A checklist before you switch the phone step on
- One suppression list, read by every channel, updated within your licence deadlines.
- Phone consent stored per product, separately from email and SMS.
- Phone numbers normalised to international format.
- Calling hours and a contact cooldown across campaigns, so a player can't be called by three campaigns in one week.
- Outcome write-back tested end to end: accept, decline, callback, opt-out, wrong person, safer-gambling flag.
- A plan for players who call the number back hours later, which happens more than teams expect.
- A holdout group.
If you'd like to hear what the call step sounds like before building anything, the browser demo lets Milo call you. Accounts are pay as you go from a $10 top-up: create one here. For where phone fits across the whole reactivation programme, start with the player reactivation guide.
Frequently asked questions
- What is an iGaming CRM?
- It is the system that holds a single record per player, segments players by behaviour and value, and sends them messages through channels such as email, SMS, push and phone. In practice it is a stack rather than one product: player account data feeds a CRM or journey tool, which triggers messages in each channel and records what happened.
- What makes an iGaming CRM different from a normal CRM?
- Suppression. A retail CRM mostly decides who to message. A gambling CRM must also decide, every time, who it may not message: self-excluded players, players without consent for that product and channel, and players showing signs of harm. In Great Britain those rules are licence conditions, with deadlines such as removing self-excluded players from marketing databases within two days.
- Can I use Customer.io or Braze as an iGaming CRM?
- Many operators do, alongside their player account platform. General journey tools are flexible and integrate well, but you have to build the gambling-specific parts yourself: consent per product and channel, self-exclusion feeds and harm flags. iGaming-specific CRMs ship more of that out of the box. Either way, the suppression logic must sit upstream of every channel, including phone.
- How do I add phone calls to my iGaming CRM?
- Treat the call as another channel step in your journeys. The journey sends the player to a calling service by webhook with their phone number, language and offer code, the service calls within your hours and rules, and it writes the outcome back to the player record as attributes and events your journey can branch on. Dial Milo does this two-way with Customer.io and accepts webhooks from any other tool that can send one.
- Which outcomes should a phone call write back to the CRM?
- At minimum: whether the call connected, the outcome (accepted, declined, callback requested, opted out, wrong person, no decision), the time of any requested callback, an opt-out flag for phone, and a safer-gambling flag. Without the last two, your other channels will keep marketing to a player who just asked you to stop.
Keep reading
Integrations
Customer.io AI phone calls: add a call step to journeys
Add an AI phone call to a Customer.io journey: the webhook payload, idempotency, the events that come back, and a full welcome-to-deposit chain you can copy.
ReadiGaming Retention
Bonus offer by phone: presenting casino offer terms
How to present a casino bonus offer by phone without misleading anyone: which terms to say aloud, UK and Dutch rules as of October 2026, and a script to copy.
ReadiGaming Retention
Player reactivation: the iGaming operator's guide
Player reactivation for online casinos: which lapsed segments to call, which to leave alone, UK and Dutch consent rules, and worked economics for a phone step.
Read