CSV campaigns use the same approved templates as standard campaigns. You’re only changing how recipients and variables are supplied, not how the message is built.
When to use a CSV campaign
Order or shipping updates
Each row has a different order number, tracking link, and delivery date.
Appointment reminders
Per-customer time, clinic location, and doctor name.
Exam or event invites
Individual seat numbers, venue details, or QR codes.
One-off imports
Recipients who aren’t in your contact list yet but need a single message.
Step 1 — Prepare your CSV
Your CSV must include a column for the phone number (with country code) and one column for each template variable. Column headers can be any text — you’ll map them in the next step.Example
For a template body like:Step 2 — Start a CSV campaign
From the sidebar, go to Campaigns → CSV Campaign.
Upload your CSV
Drag the file onto the drop zone, or click to browse. Xobito parses the file and shows a preview of the first few rows.
Map CSV columns to template variables
For each template variable (
{{1}}, {{2}}…) pick the CSV column that supplies its value. The phone-number column is mapped separately.Confirm the recipient count
Xobito shows how many rows were valid, how many were skipped (invalid number, missing required variable, duplicate), and the total estimated cost.
Rate limiting and delivery pacing
Xobito automatically paces CSV sends to stay within:- Meta’s per-second rate limit for your phone number (varies by tier).
- Your 24-hour messaging limit (1K / 10K / 100K / unlimited).
Large CSVs typically complete in 20–60 minutes depending on your Meta tier. You’ll receive a notification in Xobito when it finishes.
Tracking per-row delivery
Open the campaign details page to see the status of every single row:| Status | Meaning |
|---|---|
| Queued | Waiting in Xobito’s send queue |
| Sent | Handed off to Meta |
| Delivered | Reached the recipient’s device (single grey tick → double grey) |
| Read | Recipient opened the message (double blue tick — only if they have read receipts on) |
| Failed | Rejected by Meta — reason shown per row |
Handling skipped rows
If Xobito skips rows during upload, you’ll see a downloadable errors.csv with the original row plus an error message. Common reasons:Invalid phone number
Invalid phone number
Missing country code, letters in the number, or fewer digits than required. Fix the row and re-upload just the corrected rows as a new campaign.
Missing required variable
Missing required variable
A template variable column is blank for this row. Either fill it in, or remove the row.
Duplicate phone number
Duplicate phone number
The same number appears more than once. Xobito keeps the first occurrence and flags the rest.
Contact is opted out
Contact is opted out
The recipient previously unsubscribed. They cannot be re-messaged until they opt back in by sending you a new message.
Tips for large CSVs
Keep files under 50 KB per campaign — split larger lists into multiple sends.
Validate phone numbers in Excel or Google Sheets before uploading.
Test with a 2–3 row file first to verify the mapping is correct.
Schedule large CSVs for off-peak hours to keep your inbox manageable.
Next
Schedule a campaign
Queue your CSV send for a specific date and time.
Track performance
See delivery, read, and failure stats.