Conversational UX for AI & LLMs
TIM + Vendas: Turning WhatsApp into a Sales Channel
TIM's reseller app had 30,000 active micro-entrepreneurs and no way to reach the ones who had stopped opening it. Nine conversational flows, four audiences, and one A/B test on the opt-out.
Year :
2022
Industry :
Telecom
Client :
TIM
Project Duration :
4 months · Proof of Concept
Metric: 50k downloads · 20k → 30k active resellers

🎯 The people the app couldn't reach
My role: Conversational & Product Design · Format: Proof of Concept · Scope: 9 flows · 4 segments · 1 A/B test
TIM + Vendas turns self-employed people into resellers of prepaid SIM cards and mobile top-ups. You buy stock, sell it around your neighbourhood, earn a margin, reinvest. By October 2022, TIM reported 30,000 active resellers.
The app has one blind spot. It can only talk to resellers who open it. Push notifications land with people who still have it installed, still have notifications switched on, and still open it, which is precisely the group that needs no reactivating. Anyone drifting away is by definition the hardest person to reach inside the product.
Those same resellers spend their whole working day in a channel TIM was not using. WhatsApp is where they negotiate, send payment links, confirm top-ups and chase customers. Their storefront is a WhatsApp conversation.
So the proof of concept had one question to answer. Can WhatsApp work as an owned re-engagement and sales-activation channel, without burning the relationship it runs on?
The product is a loop
Before writing a single message I had to be clear about what I was keeping alive. The economics of TIM + Vendas sit inside one loop:
The loop is the product. A reseller who buys stock once and never sells again is not a distribution channel, only an acquisition cost with inventory attached. Channel revenue, GMV and the active-reseller figure TIM publishes all depend on how many people keep the loop turning, and how often.
That changed what the brief was about. Not a campaign. A retention problem, in a product whose retention surface was unreachable.
💬 You only get one first message
On WhatsApp, a business that starts the conversation has to open with a pre-approved template. The copy freezes at approval and cannot be edited afterwards. There is no tweaking the wording later to see whether it performs better.
The tempting response to that is one safe message with a name variable, sent to the whole base. Here is what that produces, beside what I shipped.
THE ANTI-PATTERN
Hi! TIM has news for you.
Check out our exclusive advantages and see everything the TIM + Vendas App can do for you!
5:44 PM
True for nobody. No premise, no number, no reason to answer, and it spends a template approval to say nothing.
WHAT SHIPPED
Hello, {{name}}!
How are you?
Keep earning by selling TIM Chips and TIM Recharges on the TIM + Vendas App!
To learn more about how to increase your earnings, visit the App’s Information Center.
If you no longer wish to receive messages like this, just type exit.
5:44 PM
Open the App
True for the person reading it. The premise matches what they were actually doing, and the way out sits in the same message, in one word.
Why I wrote four messages instead of one
The business and CRM side segmented the base on two axes: whether someone was active, and how recently. My call was to write four separate openings instead of one message with variables in it, each with its own approved template and its own definition of success.
Active last 2 months. “Keep earning by selling TIM Chips and TIM Recharges.”
Continuity framing → deepen the loop: more stock, more often.
Active Jan–Jun. “We missed you! Come back to profit from selling…”
A soft re-entry → restart frequency before they lapse.
Inactive Jan–Jun. “Don’t waste any more time, profit from selling…”
Urgency framing → one purchase or one sale.
Inactive last 2 months. The same reactivation premise, tuned for
the recently lapsed → reactivate before the habit decays.




This is the decision I would defend hardest, because it is the expensive one. Four templates means four approval cycles and four sets of copy to maintain. But a single message for everyone tells an active reseller they have been missed, and tells a lapsed one to keep going. Both read as a robot. Writing a premise per segment is what made the opening line true.

Four segment entry flows on one architecture. Each carries its own approved template and opening premise, and inherits identical branching, exception handling and exit logic. Copy varies, behaviour does not.
A note on the language. The product shipped in Brazilian Portuguese. The flow documents throughout this case are the English set I produced alongside the Portuguese originals, so the work could be reviewed outside the local team. That is why the documents label the segments L2M Assets and Assets Jan to Jun, a literal rendering of Ativos, the Portuguese for active.
🧩 A state architecture, not a script
The core deliverable was a system rather than a set of messages. I built a numbering convention that every flow inherits: A for acquisition and entry, O for opt-out, R for standard return, E for exceptions. Every state carries an ID like A.1.0.0.
That sounds like bookkeeping. What it buys you is the ability to point at one specific moment of a conversation in a spec, in a bug report, or in an analytics event. It also made the flows measurable by construction, since every state transition is a countable event.
Alongside it ran a set of global variables carried across every flow: phone number, name, identity, user ID, plus the current state ID and the previous one. Those last two exist for a single purpose. The system always knows where a person came from.

The anatomy of a single state. Each one shipped with its ID, exact copy, approved template name, variables, accepted inputs, RegEx reference, business rules and redirect target, using the same annotation vocabulary across all nine flows. Engineering never had to ask me what a step meant.
“Reach is easy. Permission is the asset.”
The idea every flow was built to protect. A messaging channel aimed at a low-income, high-sensitivity audience can be ruined by one bad campaign, so the exit got the same care as the entrance.
Designing for the conversations that don’t go as planned
Happy paths are the easy part. Most of the work in conversation design sits in what happens off them, so I built one exception library, specified once and inherited by all nine flows.
Unexpected yes / no. Restate the two valid options, return to the last step.

Off-menu number. Ask for the number matching one of the listed options, return to the last step.

Photo, video, emoji, sticker. “At the moment, I only understand text messages.” A spec written for a demo skips this case. Real people send stickers.

Ambiguous intent at the exit. Re-present the options rather than guessing which way someone meant to go.

Inactivity. After 30 minutes idle, a light nudge returns the person to the exact point they left. After 7 more minutes, a polite close.

The E-layer, written once and reused nine times.
Every one of them ends in a return. None ends in a stop. No state exists where the conversation simply dies. That layer is also why nine flows came out quickly: resilience was designed once and inherited, so each new campaign only had to design its own happy path.
🎁 Every campaign had a job in the loop
Not “drive engagement”, but a named effect on the buying and selling cycle. Three of the five show the range:



#MISSYOU - win-back
A coupon with a name the reseller can quote to their own customer: R$9.00 for each TIM Chip activated, conditional on one recharge within 30 days. A name, a number and a rule are things a person can repeat from memory.
TIM + Benefits - leverage
Recharges made through the app give the end customer double entries in TIM’s prize draws. The reseller is not asked to buy anything. They are handed a reason to call their customers.
Apology - service recovery
The flow I would show first. It apologises for a delivery that was not smooth and credits R$12.00 into the in-app wallet before the reseller complains, and the credit can only be spent buying a TIM Chip or on recharge sales. It converts the product’s most common support failure into a re-engagement trigger, and pays the apology in working capital instead of words.
🚪 Opt-out as a product surface
In a permission-based channel, leaving is not the failure state. It is the mechanism that keeps the channel alive. So the exit got three jobs: honour the decision immediately, offer one fair chance to reconsider, and capture why.
“I did not authorize the sending of messages to my WhatsApp” → Consent
“The content does not interest me” → Relevance
“I am not sure if this contact is from TIM / I do not trust this company” → Trust & legitimacy
“I have already registered” → Stale targeting
“I am receiving too many messages from TIM” → Frequency governance
“Other” → free-text capture, acknowledged → Qualitative input

State O.2.0.0, the reason menu, with a free-text branch behind option 6.
These are not generic unsubscribe reasons. Option 3 reports on trust, option 5 on contact frequency, option 4 on stale targeting, and each one belongs to a different owner: brand, CRM cadence, data hygiene. In a broadcast channel this is the only structured qualitative data available.
The business rule that kept it honest. Anyone who enters the opt-out flow and confirms is opted out permanently, even if they never fill in a reason. Reason capture never becomes a toll gate on leaving.
The one thing I chose to test
The reconsideration prompt was the single place where the wrong wording could either trap people or leak them. So I ran it as a test rather than settling it in a debate.
VARIANT A · O.1.0.0
Ok! I understand…
If you want to know more about how to earn extra income by reselling chips and TIM recharges, just choose the option “I want extra income” and I will show you how!
But if you are sure you want to stop receiving exclusive TIM + Sales content, type the option “I want to opt out” 😀
5:44 PM
I want extra income
I want to opt out
Hypothesis: explicit labels reduce mis-taps and let the offer compete with the exit at the moment of decision.
Result: 2.8% opt-out.
VARIANT B · O.3.0.0 · WINNER
Okay! I understand…
If you want to know more about how to earn extra income by reselling chips and TIM recharges, just choose the “Yes” option and I’ll show you how!
But if you don’t want to receive exclusive TIM + Sales content, type “No” 😀
5:44 PM
No
Yes
Hypothesis: on entry-level devices, and for people with low digital confidence, a two-word binary beats parsing two competing propositions.
Result: 1.5% opt-out.
Variant B won on the metric that decided it: opt-out rate. 1.5% opted out under the two-word binary, against 2.8% under the labelled buttons, almost double. B became the standard exit pattern across the POC.
A lower opt-out rate is only a win if it comes from comprehension rather than confusion. A binary can suppress exits simply by making the way out harder to identify, which is a dark pattern wearing the costume of a good result. So the reading holds only if unexpected input at that same state did not rise alongside it. Fewer exits and fewer mis-taps means the two words were understood. Fewer exits with more mis-taps would have meant the exit was hidden, and I would have argued against shipping it.
What I take from the result: once someone has decided to leave, persuasive text in a button label does not persuade them. It adds reading and decision cost to a choice already made. Sell before the exit, not inside it.

The winning variant in full. The fan-out at the bottom, under “Which source template?”, is the part worth reading: however someone resolves the exit, they are routed back to the origin template they arrived from. Anyone who reconsiders returns to the campaign that was relevant to them.
A handoff engineers didn’t have to decode
The flow documents were build specs rather than presentation boards. Every state left my hands with its ID, exact copy, interpolated variables, approved template name, button labels, accepted inputs, RegEx reference, business rules, redirect target, and implementation notes for the developer.
The RegEx dictionary stayed a single shared source of truth rather than being duplicated per flow, so every real-world way of saying the same thing (“do not receive anymore”, “do not want to receive”, “cancel”, “no”) resolves identically across nine flows and can be extended in one place.
🤔 Results & what I took from it
Because every state carries a stable ID, the flows were instrumentable by construction. The measurement plan was written before the first send.
100K
TEMPLATES DELIVERED
85%
85k read
READ RATE
5K
RETURNED TO THE APP
9.4%
8k clicks
CTA CLICK-THROUGH TO APP
2.8% A
1.5% B
OPT-OUT RATE, A VS B
4K
REACTIVATED RESELLERS
Back to the reseller
What drives someone away from a channel is not the message itself. It is a message that clearly was not written for them, with no way out of it.
A reseller’s storefront is a WhatsApp conversation. So we stopped asking them to come to the app and took the app to the conversation, with an opening that was true for the person reading it, an offer priced in reais, and an exit that took one word.
1. Conversation design is systems design
The valuable artifact was the architecture underneath the flows rather than any single flow. Once the state convention, the global variables and the exception library existed, a new campaign became a day of work instead of a week, and every campaign inherited the same resilience. Nine flows without a system would have been nine dead documents.
2. Design the exit as carefully as the entrance
In a permission-based channel the opt-out is what keeps the channel usable next month. It was also the only surface that produced structured qualitative data, and the only one I chose to A/B test. The cheapest exit produced the best outcome.
3. Constraints are the design
Frozen templates, a 24-hour reply window, no NLU in scope, entry-level Android devices. Each of those removed an option and forced a better decision: plan variation up front, get to the point fast, anticipate how people really type, and never assume anyone knows the convention.
4. Money is the message
Every offer appears in reais in the first screen. “R$9.00 for each TIM Chip activated.” “A R$12.00 score already in your wallet.” Never “exclusive advantages”. For an audience running a small business on thin margins, a number is the only value proposition that survives being skimmed.
5. What I would do next
Wire the opt-out reason taxonomy into a live cadence policy, so “too many messages” throttles contact frequency for that segment automatically instead of becoming a line in a report. And make the recovery flow triggered rather than reactive, fired by a delivery-SLA breach instead of a manually assembled list.
🤖 Prototypes
User Flow - Open the App
Receive the Active Notification → Click on the "Open the App" button → in this case the user is redirected to Play Store for downloading the app.
User Flow - Re-engage
Receive the Active Notification → Click on the "Open the App" button → in this case the user is redirected straight to the app for log in.
User Flow - Recover
Receive the Active Notification → User type exit → We send him an offer message with an exclusive content our chosen A/B test → Human/Success .
Slug
Title
This case study is protected
Please enter the password to view it. If you need access, get in touch and I'll share it with you.
Conversational UX for AI & LLMs
TIM + Vendas: Turning WhatsApp into a Sales Channel
TIM's reseller app had 30,000 active micro-entrepreneurs and no way to reach the ones who had stopped opening it. Nine conversational flows, four audiences, and one A/B test on the opt-out.
Year :
2022
Industry :
Telecom
Client :
TIM
Project Duration :
4 months · Proof of Concept
Metric: 50k downloads · 20k → 30k active resellers

🎯 The people the app couldn't reach
My role: Conversational & Product Design · Format: Proof of Concept · Scope: 9 flows · 4 segments · 1 A/B test
TIM + Vendas turns self-employed people into resellers of prepaid SIM cards and mobile top-ups. You buy stock, sell it around your neighbourhood, earn a margin, reinvest. By October 2022, TIM reported 30,000 active resellers.
The app has one blind spot. It can only talk to resellers who open it. Push notifications land with people who still have it installed, still have notifications switched on, and still open it, which is precisely the group that needs no reactivating. Anyone drifting away is by definition the hardest person to reach inside the product.
Those same resellers spend their whole working day in a channel TIM was not using. WhatsApp is where they negotiate, send payment links, confirm top-ups and chase customers. Their storefront is a WhatsApp conversation.
So the proof of concept had one question to answer. Can WhatsApp work as an owned re-engagement and sales-activation channel, without burning the relationship it runs on?
The product is a loop
Before writing a single message I had to be clear about what I was keeping alive. The economics of TIM + Vendas sit inside one loop:
The loop is the product. A reseller who buys stock once and never sells again is not a distribution channel, only an acquisition cost with inventory attached. Channel revenue, GMV and the active-reseller figure TIM publishes all depend on how many people keep the loop turning, and how often.
That changed what the brief was about. Not a campaign. A retention problem, in a product whose retention surface was unreachable.
💬 You only get one first message
On WhatsApp, a business that starts the conversation has to open with a pre-approved template. The copy freezes at approval and cannot be edited afterwards. There is no tweaking the wording later to see whether it performs better.
The tempting response to that is one safe message with a name variable, sent to the whole base. Here is what that produces, beside what I shipped.
THE ANTI-PATTERN
Hi! TIM has news for you.
Check out our exclusive advantages and see everything the TIM + Vendas App can do for you!
5:44 PM
True for nobody. No premise, no number, no reason to answer, and it spends a template approval to say nothing.
WHAT SHIPPED
Hello, {{name}}!
How are you?
Keep earning by selling TIM Chips and TIM Recharges on the TIM + Vendas App!
To learn more about how to increase your earnings, visit the App’s Information Center.
If you no longer wish to receive messages like this, just type exit.
5:44 PM
Open the App
True for the person reading it. The premise matches what they were actually doing, and the way out sits in the same message, in one word.
Why I wrote four messages instead of one
The business and CRM side segmented the base on two axes: whether someone was active, and how recently. My call was to write four separate openings instead of one message with variables in it, each with its own approved template and its own definition of success.
Active last 2 months. “Keep earning by selling TIM Chips and TIM Recharges.”
Continuity framing → deepen the loop: more stock, more often.
Active Jan–Jun. “We missed you! Come back to profit from selling…”
A soft re-entry → restart frequency before they lapse.
Inactive Jan–Jun. “Don’t waste any more time, profit from selling…”
Urgency framing → one purchase or one sale.
Inactive last 2 months. The same reactivation premise, tuned for
the recently lapsed → reactivate before the habit decays.




This is the decision I would defend hardest, because it is the expensive one. Four templates means four approval cycles and four sets of copy to maintain. But a single message for everyone tells an active reseller they have been missed, and tells a lapsed one to keep going. Both read as a robot. Writing a premise per segment is what made the opening line true.

Four segment entry flows on one architecture. Each carries its own approved template and opening premise, and inherits identical branching, exception handling and exit logic. Copy varies, behaviour does not.
A note on the language. The product shipped in Brazilian Portuguese. The flow documents throughout this case are the English set I produced alongside the Portuguese originals, so the work could be reviewed outside the local team. That is why the documents label the segments L2M Assets and Assets Jan to Jun, a literal rendering of Ativos, the Portuguese for active.
🧩 A state architecture, not a script
The core deliverable was a system rather than a set of messages. I built a numbering convention that every flow inherits: A for acquisition and entry, O for opt-out, R for standard return, E for exceptions. Every state carries an ID like A.1.0.0.
That sounds like bookkeeping. What it buys you is the ability to point at one specific moment of a conversation in a spec, in a bug report, or in an analytics event. It also made the flows measurable by construction, since every state transition is a countable event.
Alongside it ran a set of global variables carried across every flow: phone number, name, identity, user ID, plus the current state ID and the previous one. Those last two exist for a single purpose. The system always knows where a person came from.

The anatomy of a single state. Each one shipped with its ID, exact copy, approved template name, variables, accepted inputs, RegEx reference, business rules and redirect target, using the same annotation vocabulary across all nine flows. Engineering never had to ask me what a step meant.
“Reach is easy. Permission is the asset.”
The idea every flow was built to protect. A messaging channel aimed at a low-income, high-sensitivity audience can be ruined by one bad campaign, so the exit got the same care as the entrance.
Designing for the conversations that don’t go as planned
Happy paths are the easy part. Most of the work in conversation design sits in what happens off them, so I built one exception library, specified once and inherited by all nine flows.
Unexpected yes / no. Restate the two valid options, return to the last step.

Off-menu number. Ask for the number matching one of the listed options, return to the last step.

Photo, video, emoji, sticker. “At the moment, I only understand text messages.” A spec written for a demo skips this case. Real people send stickers.

Ambiguous intent at the exit. Re-present the options rather than guessing which way someone meant to go.

Inactivity. After 30 minutes idle, a light nudge returns the person to the exact point they left. After 7 more minutes, a polite close.

The E-layer, written once and reused nine times.
Every one of them ends in a return. None ends in a stop. No state exists where the conversation simply dies. That layer is also why nine flows came out quickly: resilience was designed once and inherited, so each new campaign only had to design its own happy path.
🎁 Every campaign had a job in the loop
Not “drive engagement”, but a named effect on the buying and selling cycle. Three of the five show the range:



#MISSYOU - win-back
A coupon with a name the reseller can quote to their own customer: R$9.00 for each TIM Chip activated, conditional on one recharge within 30 days. A name, a number and a rule are things a person can repeat from memory.
TIM + Benefits - leverage
Recharges made through the app give the end customer double entries in TIM’s prize draws. The reseller is not asked to buy anything. They are handed a reason to call their customers.
Apology - service recovery
The flow I would show first. It apologises for a delivery that was not smooth and credits R$12.00 into the in-app wallet before the reseller complains, and the credit can only be spent buying a TIM Chip or on recharge sales. It converts the product’s most common support failure into a re-engagement trigger, and pays the apology in working capital instead of words.
🚪 Opt-out as a product surface
In a permission-based channel, leaving is not the failure state. It is the mechanism that keeps the channel alive. So the exit got three jobs: honour the decision immediately, offer one fair chance to reconsider, and capture why.
“I did not authorize the sending of messages to my WhatsApp” → Consent
“The content does not interest me” → Relevance
“I am not sure if this contact is from TIM / I do not trust this company” → Trust & legitimacy
“I have already registered” → Stale targeting
“I am receiving too many messages from TIM” → Frequency governance
“Other” → free-text capture, acknowledged → Qualitative input

State O.2.0.0, the reason menu, with a free-text branch behind option 6.
These are not generic unsubscribe reasons. Option 3 reports on trust, option 5 on contact frequency, option 4 on stale targeting, and each one belongs to a different owner: brand, CRM cadence, data hygiene. In a broadcast channel this is the only structured qualitative data available.
The business rule that kept it honest. Anyone who enters the opt-out flow and confirms is opted out permanently, even if they never fill in a reason. Reason capture never becomes a toll gate on leaving.
The one thing I chose to test
The reconsideration prompt was the single place where the wrong wording could either trap people or leak them. So I ran it as a test rather than settling it in a debate.
VARIANT A · O.1.0.0
Ok! I understand…
If you want to know more about how to earn extra income by reselling chips and TIM recharges, just choose the option “I want extra income” and I will show you how!
But if you are sure you want to stop receiving exclusive TIM + Sales content, type the option “I want to opt out” 😀
5:44 PM
I want extra income
I want to opt out
Hypothesis: explicit labels reduce mis-taps and let the offer compete with the exit at the moment of decision.
Result: 2.8% opt-out.
VARIANT B · O.3.0.0 · WINNER
Okay! I understand…
If you want to know more about how to earn extra income by reselling chips and TIM recharges, just choose the “Yes” option and I’ll show you how!
But if you don’t want to receive exclusive TIM + Sales content, type “No” 😀
5:44 PM
No
Yes
Hypothesis: on entry-level devices, and for people with low digital confidence, a two-word binary beats parsing two competing propositions.
Result: 1.5% opt-out.
Variant B won on the metric that decided it: opt-out rate. 1.5% opted out under the two-word binary, against 2.8% under the labelled buttons, almost double. B became the standard exit pattern across the POC.
A lower opt-out rate is only a win if it comes from comprehension rather than confusion. A binary can suppress exits simply by making the way out harder to identify, which is a dark pattern wearing the costume of a good result. So the reading holds only if unexpected input at that same state did not rise alongside it. Fewer exits and fewer mis-taps means the two words were understood. Fewer exits with more mis-taps would have meant the exit was hidden, and I would have argued against shipping it.
What I take from the result: once someone has decided to leave, persuasive text in a button label does not persuade them. It adds reading and decision cost to a choice already made. Sell before the exit, not inside it.

The winning variant in full. The fan-out at the bottom, under “Which source template?”, is the part worth reading: however someone resolves the exit, they are routed back to the origin template they arrived from. Anyone who reconsiders returns to the campaign that was relevant to them.
A handoff engineers didn’t have to decode
The flow documents were build specs rather than presentation boards. Every state left my hands with its ID, exact copy, interpolated variables, approved template name, button labels, accepted inputs, RegEx reference, business rules, redirect target, and implementation notes for the developer.
The RegEx dictionary stayed a single shared source of truth rather than being duplicated per flow, so every real-world way of saying the same thing (“do not receive anymore”, “do not want to receive”, “cancel”, “no”) resolves identically across nine flows and can be extended in one place.
🤔 Results & what I took from it
Because every state carries a stable ID, the flows were instrumentable by construction. The measurement plan was written before the first send.
100K
TEMPLATES DELIVERED
85%
85k read
READ RATE
5K
RETURNED TO THE APP
9.4%
8k clicks
CTA CLICK-THROUGH TO APP
2.8% A
1.5% B
OPT-OUT RATE, A VS B
4K
REACTIVATED RESELLERS
Back to the reseller
What drives someone away from a channel is not the message itself. It is a message that clearly was not written for them, with no way out of it.
A reseller’s storefront is a WhatsApp conversation. So we stopped asking them to come to the app and took the app to the conversation, with an opening that was true for the person reading it, an offer priced in reais, and an exit that took one word.
1. Conversation design is systems design
The valuable artifact was the architecture underneath the flows rather than any single flow. Once the state convention, the global variables and the exception library existed, a new campaign became a day of work instead of a week, and every campaign inherited the same resilience. Nine flows without a system would have been nine dead documents.
2. Design the exit as carefully as the entrance
In a permission-based channel the opt-out is what keeps the channel usable next month. It was also the only surface that produced structured qualitative data, and the only one I chose to A/B test. The cheapest exit produced the best outcome.
3. Constraints are the design
Frozen templates, a 24-hour reply window, no NLU in scope, entry-level Android devices. Each of those removed an option and forced a better decision: plan variation up front, get to the point fast, anticipate how people really type, and never assume anyone knows the convention.
4. Money is the message
Every offer appears in reais in the first screen. “R$9.00 for each TIM Chip activated.” “A R$12.00 score already in your wallet.” Never “exclusive advantages”. For an audience running a small business on thin margins, a number is the only value proposition that survives being skimmed.
5. What I would do next
Wire the opt-out reason taxonomy into a live cadence policy, so “too many messages” throttles contact frequency for that segment automatically instead of becoming a line in a report. And make the recovery flow triggered rather than reactive, fired by a delivery-SLA breach instead of a manually assembled list.
🤖 Prototypes
User Flow - Open the App
Receive the Active Notification → Click on the "Open the App" button → in this case the user is redirected to Play Store for downloading the app.
User Flow - Re-engage
Receive the Active Notification → Click on the "Open the App" button → in this case the user is redirected straight to the app for log in.
User Flow - Recover
Receive the Active Notification → User type exit → We send him an offer message with an exclusive content our chosen A/B test → Human/Success .
Slug
Title
This case study is protected
Please enter the password to view it. If you need access, get in touch and I'll share it with you.