CSV Message Generator – Personalised WhatsApp & SMS Campaigns
by exciting_perfume
Upload a CSV and instantly create ready-to-send personalized WhatsApp and SMS messages. Perfect for invoice reminders, promotions, and client updates....
Opens on Apify.com
About CSV Message Generator – Personalised WhatsApp & SMS Campaigns
Upload a CSV and instantly create ready-to-send personalized WhatsApp and SMS messages. Perfect for invoice reminders, promotions, and client updates. No APIs or WhatsApp Business required.
What does this actor do?
CSV Message Generator – Personalised WhatsApp & SMS Campaigns is a web scraping and automation tool available on the Apify platform. It's designed to help you extract data and automate tasks efficiently in the cloud.
Key Features
- Cloud-based execution - no local setup required
- Scalable infrastructure for large-scale operations
- API access for integration with your applications
- Built-in proxy rotation and anti-blocking measures
- Scheduled runs and webhooks for automation
How to Use
- Click "Try This Actor" to open it on Apify
- Create a free Apify account if you don't have one
- Configure the input parameters as needed
- Run the actor and download your results
Documentation
CSV Message Generator – Personalized WhatsApp & SMS Campaigns Upload a CSV and instantly create ready-to-send personalized WhatsApp and SMS messages. Perfect for invoice reminders, promotions, and client updates. No APIs or WhatsApp Business required. --- ## 🚀 Features - Works with WhatsApp or SMS - Merge two CSVs (e.g. Contacts + Invoices) on a shared field - Use placeholders like {{name}} or {{amount}} directly in your messages - Generate a shareable results dashboard with clickable buttons - Track message status as you or your team send them - No coding or APIs needed – just CSV input and a few clicks --- ## 💡 Example Use Cases - Invoice reminders: “Hi {{name}}, your invoice for €{{amount}} is due.” - Appointment confirmations: “Hi {{name}}, your appointment is booked for {{date}} at {{time}}.” - Promotions: “Hi {{name}}, enjoy 10% off this week at our store.” - Customer updates: “Hi {{name}}, your order {{order_id}} has been shipped.” --- ## 📂 Input 1. Upload a CSV file with your contacts (phone numbers required). 2. Optionally, upload a second CSV (e.g. invoices, bookings). 3. Select a matching field (e.g. name, email, or customer_id) to merge both files. 4. Write your message template with placeholders like {{name}} or {{amount}}. --- ## 📊 Output - Interactive results page: clickable WhatsApp/SMS links for each row - Status column: track which messages have been sent - Downloadable CSV: for archiving or sharing --- ## 💰 Pricing - Free tier: up to 25 messages per run - Paid tier: unlimited messages + full dashboard access - Model: Monthly rental pricing --- ## 🌍 Why Use This Tool? - No WhatsApp Business or API setup required - Works worldwide (just include the correct country dialing codes) - Uses simple CSV input — compatible with Sage, Xero, QuickBooks, HubSpot, Excel, Google Sheets, and more - Provides a friendly dashboard, not just raw data --- ## 📸 Screenshots (recommended) > Add screenshots here to show users what they’ll get: - CSV upload screen - Template builder with placeholders - Final dashboard with “Click to Send” buttons + status updates --- ## ⚙️ How It Works 1. Upload your CSV(s) 2. Choose your matching field (if merging two files) 3. Write your message with placeholders 4. Get instant, personalized WhatsApp/SMS links 5. Share the results dashboard with your team --- ## 🔒 Notes - Phone numbers must be in international format (e.g. 353871234567) - Works with personal WhatsApp accounts (not WhatsApp Business API) - SMS deep links depend on the user’s phone carrier and messaging app --- ## 📑 Dataset Schema Each generated message is stored as a dataset item. You can download the dataset as JSON, CSV, or Excel from the Actor run. | Field | Type | Description | |--------------------|-----------|-------------| | id | string | Stable unique ID for this result (UUID or hash). | | channel | string | Either whatsapp or sms. | | phone_e164 | string | Normalized phone number in E.164 format, e.g. +353873685787. | | phone_display | string | Original/raw phone from the CSV. | | country_dial | string | Dialing code used (e.g. 353). | | merge_key | string | Field used to join CSVs (e.g. name, customer_id). | | merge_matched | boolean | true if a secondary row was matched and merged. | | row_index_primary| integer | Index of the row in the primary CSV. | | row_index_secondary | integer/null | Index of the row in the secondary CSV (if any). | | data | object | Merged row data used for template rendering (safe fields only). | | placeholders_used| array | List of placeholders replaced, e.g. ["name","amount"]. | | message_template | string | Template text before rendering, with {{placeholders}}. | | message_rendered | string | Final personalized message text. | | message_preview | string | Shortened preview (first ~120 chars). | | link_url | string | Ready-to-click WhatsApp or SMS link. | | link_length | integer | Length of the generated link (bytes). | | result_status | string | One of ready, skipped_invalid_phone, skipped_missing_data, error. | | error_message | string/null | Details if result_status = error. | | sent_status | string | pending or sent. | | sent_at | datetime/null | Timestamp when the message was clicked/sent. | | utm | object | Optional UTM tracking fields (source, medium, campaign). | | audit | object | Metadata: generated_at (ISO datetime), actor_run_id, version. | ### Example Item ```json { "id": "c1b2c3d4-9a7e-4f0b-98a1-2fbc21a5b9aa", "channel": "whatsapp", "phone_e164": "+353873685787", "phone_display": "0873685787", "country_dial": "353", "merge_key": "name", "merge_matched": true, "row_index_primary": 12, "row_index_secondary": 12, "data": { "name": "Mary Smith", "invoice_number": "INV-1042", "amount": "€70.00", "due_date": "2025-09-30" }, "placeholders_used": ["name","invoice_number","amount","due_date"], "message_template": "Hi {{name}}, your invoice {{invoice_number}} for {{amount}} is due {{due_date}}.", "message_rendered": "Hi Mary Smith, your invoice INV-1042 for €70.00 is due 2025-09-30.", "message_preview": "Hi Mary Smith, your invoice INV-1042 for €70.00…", "link_url": "https://wa.me/353873685787?text=Hi%20Mary%20Smith%2C%20your%20invoice...", "link_length": 164, "result_status": "ready", "error_message": null, "sent_status": "pending", "sent_at": null, "utm": { "source": "admindone", "medium": "whatsapp", "campaign": "invoice-reminder" }, "audit": { "generated_at": "2025-09-16T18:10:45Z", "actor_run_id": "qwer1234", "version": "1.0.0" } }
Categories
Common Use Cases
Market Research
Gather competitive intelligence and market data
Lead Generation
Extract contact information for sales outreach
Price Monitoring
Track competitor pricing and product changes
Content Aggregation
Collect and organize content from multiple sources
Ready to Get Started?
Try CSV Message Generator – Personalised WhatsApp & SMS Campaigns now on Apify. Free tier available with no credit card required.
Start Free TrialActor Information
- Developer
- exciting_perfume
- Pricing
- Paid
- Total Runs
- 151
- Active Users
- 4
Related Actors
🏯 Tweet Scraper V2 - X / Twitter Scraper
by apidojo
Google Search Results Scraper
by apify
Instagram Profile Scraper
by apify
Tweet Scraper|$0.25/1K Tweets | Pay-Per Result | No Rate Limits
by kaitoeasyapi
Apify provides a cloud platform for web scraping, data extraction, and automation. Build and run web scrapers in the cloud.
Learn more about ApifyNeed Professional Help?
Couldn't solve your problem? Hire a verified specialist on Fiverr to get it done quickly and professionally.
Trusted by millions | Money-back guarantee | 24/7 Support