Marketing Content — File Creation Guide
Purpose
Each lifecycle email and WhatsApp message needs its own .md file. These files are used by the content team (or AI) to generate actual messages. Every file defines variables, content structure, tone, and conditions.
File Structure Template
Every MD file must follow this exact structure:
# [Message Title]
## Metadata
| Field | Value |
|-------|-------|
| **ID** | `CREATOR_ONBOARD_01` |
| **Channel** | `email` or `whatsapp` |
| **Trigger** | What event sends this (e.g., "Signup completed") |
| **Segment** | `creator` or `brand` |
| **Timing** | When to send (e.g., "Immediately", "+1 day") |
| **Priority** | `high` / `medium` / `low` |
## Variables
| Variable | Description | Example | Required |
|----------|-------------|---------|----------|
| `{{var1}}` | What this variable represents | Sample value | Yes/No |
| `{{var2}}` | What this variable represents | Sample value | Yes/No |
> **Rules:**
> - Wrap every variable in double braces: `{{name}}`
> - Use snake_case: `{{first_name}}`, `{{campaign_name}}`
> - Always provide an example value
> - Mark required vs optional
## Content
### Subject Line (email only)
Welcome to Krrio, {{first_name}} — here's how to earn your first ₹1,000
> **Rules:**
> - Keep under 50 characters
> - Include personalization variable if possible
> - No emojis in subject line
> - Clear value proposition
### Body
Hi {{first_name}},
You just joined Krrio — where creators like you earn real money for every view.
Here's what to do next:
- Browse campaigns that match your niche ({{niche}})
- Apply to the ones you like
- Post using your tracking link
- Watch your earnings grow
{{#if has_instagram}} Great, we found your Instagram @{{instagram_handle}}. You're ready to go. {{else}} Connect your Instagram to start applying to campaigns. {{/if}}
[Button: Browse campaigns]
> **Rules:**
> - Max 150 words for email, 3 lines for WhatsApp
> - Use `{{#if condition}}` for conditional blocks
> - Always include one CTA button
> - Second person ("you") not first person
> - One idea per paragraph
### CTA
| Field | Value |
|-------|-------|
| **Text** | Browse campaigns |
| **URL** | `{{marketplace_url}}?niche={{niche}}` |
| **Style** | `primary` (red) / `secondary` (outline) |
### WhatsApp Specific (if channel = whatsapp)
👋 {{first_name}}, pick your first campaign — {{campaign_count}} are live right now.
Top paying today: • {{top_campaign_1}}: ₹{{rate_1}}/view • {{top_campaign_2}}: ₹{{rate_2}}/view
👉 {{marketplace_url}}
> **Rules:**
> - Max 3 lines before link
> - One emoji max at start
> - Include direct link, no button
> - Bullet list for multiple items
## Conditions (When NOT to send)
- User has already applied to a campaign
- User was active in the last 24 hours
- User has unsubscribed from this category
- User's profile is incomplete (send profile completion email instead)
## A/B Test Variants
| Variant | Subject Line | Difference |
|---------|--------------|------------|
| A (control) | Welcome to Krrio, {{first_name}} | Standard |
| B | {{first_name}}, ₹{{potential_earnings}} waiting in campaigns | Earnings-focused |
## Notes
- Link to Figma for email design: [link]
- Legal footer required: Yes
- Unsubscribe link required: Yes
Variable Reference (Global)
These variables are available in ALL files:
| Variable | Description | Source |
|---|---|---|
{{first_name}} | User's first name | Profile |
{{last_name}} | User's last name | Profile |
{{email}} | User's email | Auth |
{{phone}} | User's phone | Auth |
{{signup_date}} | When they signed up | System |
{{niche}} | Creator's niche / Brand's industry | Profile |
{{instagram_handle}} | Instagram username | OAuth |
{{youtube_channel}} | YouTube channel name | OAuth |
{{signup_type}} | creator or brand | Auth |
{{profile_complete}} | Boolean — is profile complete? | System |
{{last_active}} | Last login date | System |
{{days_inactive}} | Days since last activity | System |
{{unsubscribe_url}} | Unsubscribe link | System |
{{preferences_url}} | Communication preferences link | System |
Creator-specific Variables
| Variable | Description | Source |
|---|---|---|
{{total_earnings}} | Lifetime earnings | Wallet |
{{wallet_balance}} | Current wallet balance | Wallet |
{{total_views}} | Total verified views | Analytics |
{{campaigns_applied}} | Number of applications | System |
{{campaigns_approved}} | Number of approvals | System |
{{campaigns_completed}} | Number of completed posts | System |
{{avg_views_per_post}} | Average views per post | Analytics |
{{top_niche}} | Best performing niche | Analytics |
{{payout_method}} | UPI / Bank | Wallet |
{{follower_count}} | Instagram followers | OAuth |
Brand-specific Variables
| Variable | Description | Source |
|---|---|---|
{{company_name}} | Brand name | Profile |
{{total_spend}} | Lifetime campaign spend | Wallet |
{{total_budget}} | Total budget allocated | Analytics |
{{total_views}} | Total views received | Analytics |
{{campaigns_created}} | Number of campaigns | System |
{{campaigns_active}} | Currently active campaigns | System |
{{avg_cpv}} | Average cost per view | Analytics |
{{total_creators}} | Creators who applied | System |
{{roi}} | Return on investment % | Analytics |
Campaign-specific Variables (used in campaign-related messages)
| Variable | Description | Source |
|---|---|---|
{{campaign_name}} | Campaign title | Campaign |
{{campaign_rate}} | Pay per view | Campaign |
{{campaign_budget}} | Total budget | Campaign |
{{campaign_spent}} | Budget used | Campaign |
{{campaign_views}} | Views so far | Analytics |
{{campaign_deadline}} | Posting deadline | Campaign |
{{campaign_status}} | Live / Paused / Ended | Campaign |
{{campaign_dashboard_url}} | Link to dashboard | System |
File Naming Convention
{segment}_{stage}_{number}.md
| Code | Meaning |
|---|---|
creator_ | For creators |
brand_ | For brands |
onboard_ | Onboarding series |
activate_ | Activation (first campaign) |
retain_ | Retention & engagement |
winback_ | Re-engagement / win-back |
edu_ | Educational / value-add |
cross_ | Cross-user (social proof, referrals) |
alert_ | System alerts |
Examples:
creator_onboard_01_welcome.mdbrand_activate_03_first-application.mdcreator_retain_02_weekly-digest.mdbrand_winback_01_three-week-inactive.mdcreator_edu_01_tips-after-3-posts.mdcross_alert_01_payout-failed.md
Tone Guidelines
| Segment | Tone | Avoid |
|---|---|---|
| Creators | Friendly, encouraging, casual | Corporate jargon, overly formal |
| Brands | Professional, data-driven, confident | Slang, too casual |
Universal Rules
- Use "you" not "we" as the default subject
- One idea per sentence
- Active voice always
- Numbers over words (₹5K not ₹5,000 in body)
- No exclamation marks in email body (one max in WhatsApp)
- Always end with a single clear CTA
Output Structure
All files go into:
content/
├── creator/
│ ├── onboard/
│ │ ├── 01-welcome.md
│ │ ├── 02-first-day-nudge.md
│ │ ├── 03-profile-incomplete.md
│ │ ├── 04-no-campaign-applied.md
│ │ └── 05-three-day-inactive.md
│ ├── activate/
│ │ ├── 01-application-sent.md
│ │ ├── 02-application-approved.md
│ │ ├── 03-post-submitted.md
│ │ ├── 04-first-1000-views.md
│ │ └── 05-first-payout.md
│ ├── retain/
│ │ ├── 01-weekly-digest.md
│ │ ├── 02-new-campaign-alert.md
│ │ ├── 03-seven-day-inactive.md
│ │ ├── 04-milestone-10k.md
│ │ └── 05-earnings-spike.md
│ ├── winback/
│ │ ├── 01-21-day-inactive.md
│ │ ├── 02-45-day-inactive.md
│ │ └── 03-90-day-inactive.md
│ └── edu/
│ ├── 01-tips-after-3-posts.md
│ ├── 02-tax-guide.md
│ └── 03-monthly-spotlight.md
├── brand/
│ ├── onboard/
│ │ ├── 01-welcome.md
│ │ ├── 02-first-day-nudge.md
│ │ ├── 03-profile-incomplete.md
│ │ ├── 04-campaign-template.md
│ │ └── 05-three-day-inactive.md
│ ├── activate/
│ │ ├── 01-campaign-created.md
│ │ ├── 02-first-application.md
│ │ ├── 03-five-creators-approved.md
│ │ ├── 04-first-post-live.md
│ │ └── 05-campaign-ended.md
│ ├── retain/
│ │ ├── 01-weekly-digest.md
│ │ ├── 02-budget-50-spent.md
│ │ ├── 03-budget-80-spent.md
│ │ ├── 04-post-campaign.md
│ │ └── 05-milestone-1l-spend.md
│ ├── winback/
│ │ ├── 01-21-day-inactive.md
│ │ ├── 02-60-day-inactive.md
│ │ └── 03-90-day-inactive.md
│ └── edu/
│ ├── 01-campaign-benchmarks.md
│ ├── 02-brand-playbook.md
│ └── 03-seasonal-calendar.md
├── cross/
│ ├── social-proof/
│ │ ├── 01-creator-applied.md
│ │ ├── 02-budget-added.md
│ │ └── 03-referral-joined.md
│ └── alerts/
│ ├── 01-payout-failed.md
│ ├── 02-post-flagged.md
│ └── 03-campaign-paused.md
└── README.md (this file)
Quick Checklist Per File
Before marking a file as complete, verify:
- Metadata table filled (ID, Channel, Trigger, Segment, Timing)
- All variables defined with description, example, required
- Subject line < 50 chars (email)
- Body < 150 words (email) / 3 lines (WhatsApp)
- CTA has text + URL
- Conditional blocks use
{{#if}}syntax - Conditions section lists when NOT to send
- A/B variant included (at minimum one alternative)
- Tone matches segment (creators = casual, brands = professional)