How to sync bookings to email lists
To sync bookings to email lists, use your booking plugin’s Mailchimp integration or connect its booking event to the Mailchimp API. A manual CSV import is fine for a small, one-off list, but ongoing bookings need automation, consent handling, duplicate updates and a plan for failed syncs.
- 01Decide who should be subscribed
- 02Prepare the Mailchimp audience
- 03Use a manual import for small lists
- 04Build a custom ongoing sync
- 05Connect the native integration
- 06Test and check the sync
What you need
- A WordPress booking plugin that stores customer email addresses
- A Mailchimp account with an existing audience
- Administrator access to WordPress
- A clear marketing opt-in field or consent process
Decide who should be subscribed
Do not add every person who makes a booking as a marketing subscriber. A booking may be necessary to deliver a service, but that does not automatically prove consent for newsletters or promotions. Sync only people who have given the required marketing permission, and keep the consent field available in your booking records.
Decide whether you need one audience with tags, or several separate audiences. Mailchimp treats an audience as the main contact list; tags label contacts, while segments filter contacts based on data such as tags or activity.
Prepare the Mailchimp audience
Create or choose the Mailchimp audience that should receive booking contacts. Add the merge fields you actually need, such as first name, booking type or preferred location, before mapping data from WordPress. Create tags for useful booking categories if you want follow-up campaigns by service or customer type.
Set the audience’s opt-in and unsubscribe behaviour before sending contacts. If you use double opt-in, expect new contacts to remain pending until they confirm. Never overwrite an existing unsubscribe with a subscribed status unless the person has explicitly opted in again.
Use a manual import for small lists
For a one-off migration, export the relevant bookings as CSV, remove people without marketing consent, and format the columns to match your Mailchimp audience fields. Import the file into the audience and apply a tag such as booking-import-2026 so you can identify the batch later.
This route is reasonable for a small list or a one-time clean-up. It does not keep future bookings synchronised, and importing the same customers again can create confusion unless you use the audience’s existing email addresses and update records rather than creating new contacts.
Build a custom ongoing sync
If your booking plugin has no Mailchimp integration, connect its booking-created event to the Mailchimp Marketing API through a small custom plugin or an automation service. The process should read the customer’s email, name, consent state and booking category, then add or update the contact in the chosen audience with the appropriate tag.
With BookingPress, the documented bookingpress_after_book_appointment action runs after an appointment is created and provides booking identifiers that custom code can use to retrieve the customer data. You must still handle duplicate emails, API errors, cancellations and contacts who have unsubscribed.
Keep API credentials out of theme files and public JavaScript. Queue or log failed requests rather than silently losing a booking, because an API timeout on a busy Friday can leave your audience behind without showing an obvious WordPress error.
Connect the native integration
If your booking plugin provides a native Mailchimp connection, use it instead of maintaining custom API code. In BookingPress, activate the Mailchimp addon, then go to BookingPress → Setting → Opt-ins, enter a Mailchimp API key, choose the returned audience or list, and map the fields you need.
The documented settings also include double opt-in, updating existing users and refreshing the available list names. Check the opt-in settings carefully before saving: the integration documentation notes that checkbox field types are not available in its additional field mapping, so consent may need to be handled by the integration’s own opt-in controls.
Test and check the sync
Make a test booking with a test email address and the intended consent choice. Confirm whether the contact appears in the correct audience, whether the name and custom fields are populated, whether the expected tag or segment rule matches, and whether double opt-in behaves as intended.
Test an existing contact, a repeat booking, a person who declines marketing and a failed or cancelled booking. Then check Mailchimp’s contact activity and your WordPress logs. If the audience is missing from the integration, refresh the list names or reconnect the account rather than creating another audience.
Let BookingPress Mailchimp Integration Addon do it
Automatically sends BookingPress client data to segmented email lists; choose it for booking-triggered Mailchimp campaigns.
Sources
- mailchimp.com /developer/marketing/concepts/audiences?utm_source=openai
- bookingpressplugin.com /developer-hooks/?utm_source=openai
- bookingpressplugin.com /documents/mailchimp-integration/?utm_source=openai
Questions
- Can I sync bookings to Mailchimp without a plugin?
- Yes, but ongoing synchronisation needs custom code or an automation service that sends booking data to the Mailchimp Marketing API. A CSV export and import is enough for a one-off list. For automatic updates, you must handle consent, duplicate contacts, tags, API failures and unsubscribes, so a native booking-plugin integration is usually simpler to maintain.
- Should every booking customer be added to my email list?
- No, only add customers who have given the appropriate marketing consent. A booking may provide permission for service-related messages but not necessarily for newsletters or promotional campaigns. Store the opt-in choice with the booking and pass that state to Mailchimp. Mailchimp’s documentation treats consent as an explicit contact attribute rather than something inferred from a purchase or booking.
- Should I use Mailchimp lists, tags or segments for booking data?
- Use one audience where possible, then use tags or merge fields to record booking information and segments to select groups for campaigns. For example, tag contacts by service and create a segment for people with that tag. Separate audiences are harder to manage and can create duplicate contacts, while segments are saved filters rather than independent contact lists.
- Why are new bookings not appearing in Mailchimp?
- The usual causes are missing consent, a disconnected API key, a stale audience selection, a failed API request or a booking event that has not reached its completed state. Check the integration settings, refresh the available audience names, make a test booking and inspect the contact activity. Also confirm that you are checking the correct audience, because Mailchimp audiences are separate contact stores.
- What is the fastest way to sync BookingPress bookings?
- The fastest route is BookingPress’s Mailchimp integration addon: activate it, enter a Mailchimp API key under the BookingPress opt-in settings, select the audience, choose the opt-in behaviour and map the fields. It is preferable to custom code when you need booking-triggered contact updates without maintaining your own API connection.