Use Case Library

Explore Content Fetch use cases across E-commerce, BFSI, QSR, Travel, and Hospitality

Overview

Refer to the use case library to learn how to pull live data from your own systems into a message at send time, grouped by vertical. Every play uses the same mechanic under the hood: a one-time API connection, mapped to a readable label, called live and rendered with Liquid.

Label signature:

  • Fetched values are referenced as {{ CONTENT_FETCH.connection_name.label_name }}.
  • CONTENT_FETCH is a static keyword, connection_name is the connection you configured, and label_name is the field you mapped.
  • Ordinary user attributes like {{ first_name }} stay plain Liquid, only values pulled from your API carry the CONTENT_FETCH prefix.

E-commerce

Catalogs, prices, and stock move faster than any sync cycle. Content Fetch keeps the message honest at the moment it lands.

Problem

Prices and inventory change through the day, but profile-stored values update only on sync. A campaign can promote yesterday's price or push "shop now" for a sold-out item — eroding trust and wasting the send.

Constructs used

Liquid if/elseconnection: live_catalog

Solution

{% if CONTENT_FETCH.live_catalog.stock_status > 0 %} Back in stock at ₹{{ CONTENT_FETCH.live_catalog.product_price }} — only {{ CONTENT_FETCH.live_catalog.stock_status }} left. {% else %} Selling out fast. We'll notify you when it's back. {% endif %}

Example output

In stock: "Back in stock at ₹2,499 — only 3 left."
Sold out: "Selling out fast. We'll notify you when it's back."

Impact

  • Every recipient sees the correct, current price — no post-click mismatch.
  • No traffic driven to out-of-stock pages; sold-out users get a save-the-moment message instead.
  • Higher click-to-purchase conversion and fewer trust-damaging dead ends.

Problem

Recommendations stored on the profile reflect the last sync, not the user's latest behaviour or the recommendation engine's current output. Stale recs feel generic and depress engagement.

Constructs used

Output tagsconnection: reco_engine

Solution

Picked for you: {{ CONTENT_FETCH.reco_engine.reco_1_name }} and {{ CONTENT_FETCH.reco_engine.reco_2_name }}

Example output

"Picked for you: Classic Denim Jacket and Wireless Earbuds"

Impact

  • Recommendations reflect real-time intent and inventory, not a day-old snapshot.
  • Stronger relevance lifts click-through and average order value.
  • One connection powers recommendations across every campaign — no per-send data prep.

Problem

A shopper's points balance and tier change with every order, but a "you're close to a reward" message needs the live number to be credible. A wrong balance backfires.

Constructs used

Output tagsconnection: loyalty

Solution

You have {{ CONTENT_FETCH.loyalty.points_balance }} points — {{ CONTENT_FETCH.loyalty.points_to_next }} more unlocks your next reward.

Example output

"You have 340 points — 60 more unlocks your next reward."

Impact

  • Accurate, motivating nudges that reflect the shopper's true standing.
  • Higher redemption and repeat-purchase rates.
  • Reinforces the loyalty programme without a support ticket over a wrong balance.

BFSI

Balances, premiums, and renewal dates live in core systems that rarely feed the CRM in real time. Content Fetch reads them at the moment of contact.

Problem

Renewal dates and premium amounts sit in the policy administration system, not the marketing profile. Reminders built on synced data can show the wrong date or amount, or miss the window entirely — driving lapses.

Constructs used

Output tagsconnection: policy_api

Solution

Your policy renews on {{ CONTENT_FETCH.policy_api.renewal_date }}. Renew now to stay covered — premium ₹{{ CONTENT_FETCH.policy_api.premium_amount }}.

Example output

"Your policy renews on 12 Aug 2026. Renew now to stay covered — premium ₹8,450."

Impact

  • Reminders always carry the correct date and amount.
  • On-time renewals rise; policy lapse and revenue leakage fall.
  • Reduced inbound queries caused by mismatched reminder details.

Problem

Wallet, account, and card balances change continuously. A balance shown from a synced profile is almost always out of date, which makes proactive alerts unusable.

Constructs used

Output tagsconnection: account_api

Solution

Your wallet balance is ₹{{ CONTENT_FETCH.account_api.wallet_balance }}. Add funds to keep transactions smooth.

Example output

"Your wallet balance is ₹1,230. Add funds to keep transactions smooth."

Impact

  • Trustworthy, actionable alerts that reflect the account's true state.
  • More top-ups and re-engagement; fewer failed transactions.
  • Positions the brand as timely and reliable at moments that matter financially.

Problem

Card and loyalty reward points — and their expiry dates — change with every transaction. Generic "use your points" messages without a live figure feel like noise.

Constructs used

Output tagsconnection: rewards_api

Solution

You have {{ CONTENT_FETCH.rewards_api.reward_points }} points expiring on {{ CONTENT_FETCH.rewards_api.points_expiry }}. Redeem before they lapse.

Example output

"You have 1,250 points expiring on 30 Sep 2026. Redeem before they lapse."

Impact

  • Points-expiry urgency backed by real numbers drives redemption.
  • Higher card spend and programme engagement.
  • Recovers value that would otherwise silently expire.

QSR

Offers, loyalty, and outlet-level availability are hyper-local and time-sensitive. Content Fetch personalises down to the individual and the moment.

Problem

Coupon codes, values, and validity are generated per user in an offers engine and change constantly. Pushing a stale or generic code leads to failed redemptions and frustration at checkout.

Constructs used

Output tagsconnection: offers_engine

Solution

Here's {{ CONTENT_FETCH.offers_engine.coupon_value }} off your next order — code {{ CONTENT_FETCH.offers_engine.coupon_code }}, valid till {{ CONTENT_FETCH.offers_engine.coupon_expiry }}.

Example output

"Here's 20% off your next order — code WELCOME20, valid till 5 Aug 2026."

Impact

  • Every code is live, valid, and personal — no redemption failures.
  • Higher offer redemption and order frequency.
  • One connection serves rotating offers across all campaigns.

Problem

A loyalty member's points move with every order, and the motivating message — how close they are to a free item — needs the current number to land.

Constructs used

Output tagsconnection: loyalty

Solution

You're just {{ CONTENT_FETCH.loyalty.points_to_reward }} points from a free {{ CONTENT_FETCH.loyalty.reward_item }}. Order today to get there.

Example output

"You're just 40 points from a free Cappuccino. Order today to get there."

Impact

  • Precise, personal nudges increase repeat-order frequency.
  • Drives incremental orders specifically to close the reward gap.
  • Deepens loyalty-programme stickiness.

Problem

The same push ("Grab a hot coffee") is irrelevant on a hot day and wasteful at scale. Weather context isn't available from a static profile.

Constructs used

Liquid if/elseconnection: weather

Solution

{% if CONTENT_FETCH.weather.temperature > 32 %} Beat the heat — cold beverages, delivered in minutes. {% else %} A warm meal for the weather. Order now. {% endif %}

Example output

Hot day: "Beat the heat — cold beverages, delivered in minutes."
Cool day: "A warm meal for the weather. Order now."

Impact

  • Contextually relevant offers lift click-through and order rates.
  • The same campaign self-adjusts across cities and days — no manual variants.
  • Feels timely and human rather than mass-blasted.

Travel

Fares, seat status, and loyalty balances shift by the minute. Content Fetch turns a scheduled push into a live one.

Problem

Fares for a searched route change constantly. A price-drop or "book now" message built on a synced fare is often wrong by the time it's opened, killing conversion and credibility.

Constructs used

Output tagsconnection: fares_api

Solution

Fares to {{ destination }} are now ₹{{ CONTENT_FETCH.fares_api.current_fare }} — book before they climb again.

Example output

"Fares to Goa are now ₹4,199 — book before they climb again."

Impact

  • Fare shown always matches the live price at open.
  • Real price-drop urgency drives booking conversion.
  • Fewer abandoned journeys from stale-price disappointment.

Problem

Gate changes, delays, and status updates happen in operational systems the CRM doesn't mirror. Travellers expect the brand to tell them first.

Constructs used

Output tagsconnection: booking_status

Solution

Update for {{ pnr }}: {{ CONTENT_FETCH.booking_status.flight_status }}. Gate {{ CONTENT_FETCH.booking_status.gate_number }}, boarding {{ CONTENT_FETCH.booking_status.boarding_time }}.

Example output

"Update for 6E203: On time. Gate 14B, boarding 18:40."

Impact

  • Proactive, accurate status builds trust and reduces anxiety.
  • Fewer support contacts and app check-ins to find the same information.
  • Positions the brand as the traveller's reliable source of truth.

Problem

Miles balances and expiry dates change with travel and spend. A redemption nudge without the live figure feels generic and easy to ignore.

Constructs used

Output tagsconnection: loyalty_api

Solution

You have {{ CONTENT_FETCH.loyalty_api.miles_balance }} miles expiring {{ CONTENT_FETCH.loyalty_api.miles_expiry }} — enough for a reward flight.

Example output

"You have 8,400 miles expiring 15 Nov 2026 — enough for a reward flight."

Impact

  • Live balances make redemption prompts credible and urgent.
  • Recovers miles that would otherwise expire; increases programme engagement.
  • Drives repeat bookings and direct-channel loyalty.

Hospitality

Room rates, availability, and on-property spend are dynamic and property-specific. Content Fetch personalises to the guest and the stay.

Problem

Rates and availability for a guest's preferred property and dates change continuously. Promoting a sold-out date or an outdated rate frustrates guests and drives them to third-party sites.

Constructs used

Liquid if/elseconnection: rates_api

Solution

{% if CONTENT_FETCH.rates_api.rooms_available > 0 %} Your dates at {{ property_name }} are open from ₹{{ CONTENT_FETCH.rates_api.live_rate }}/night. Book direct. {% else %} Fully booked for those dates — see nearby availability. {% endif %}

Example output

Available: "Your dates at The Grand Palms are open from ₹6,200/night. Book direct."
Sold out: "Fully booked for those dates — see nearby availability."

Impact

  • Guests only see bookable, correctly priced offers.
  • More direct bookings; less leakage to OTAs.
  • Fewer dead-end clicks and rate-mismatch complaints.

Problem

A guest's tier and points change with every stay, and the message that motivates a return booking — how close they are to the next perk — needs the live standing.

Constructs used

Output tagsconnection: loyalty_api

Solution

You're {{ CONTENT_FETCH.loyalty_api.nights_to_next_tier }} nights from {{ CONTENT_FETCH.loyalty_api.next_tier }} status and its upgrades. Plan your next stay.

Example output

"You're 2 nights from Gold status and its upgrades. Plan your next stay."

Impact

  • Accurate, aspirational nudges drive repeat and direct bookings.
  • Strengthens loyalty-programme progression and stickiness.
  • Encourages incremental stays specifically to reach the next tier.

Problem

On-property offers (spa, pool, dining) and a guest's resort-credit balance are contextual and change during the stay. Generic upsell messages miss the moment.

Constructs used

Liquid if/elseconnections: weather + folio_api

Solution

{% if CONTENT_FETCH.weather.weather_condition == "rain" %} Rainy afternoon? Use your ₹{{ CONTENT_FETCH.folio_api.resort_credit }} credit on a spa session. {% else %} Perfect pool weather — reserve a cabana with your ₹{{ CONTENT_FETCH.folio_api.resort_credit }} credit. {% endif %}

Example output

Rain: "Rainy afternoon? Use your ₹1,500 credit on a spa session."
Clear: "Perfect pool weather — reserve a cabana with your ₹1,500 credit."

Impact

  • Context-matched upsell lifts on-property revenue per guest.
  • Live credit balances make offers immediately actionable.
  • Elevates the guest experience with timely, relevant suggestions.


Did this page help you?