# Synchronisation

In this chapter we explain which data is synchronised between Mailchimp and beabee, when and how.

### From Mailchimp to beabee

#### On events from Mailchimp:

beabee uses a [webhook](https://mailchimp.com/developer/marketing/guides/sync-audience-data-webhooks/) to get updates from Mailchimp, it listens for the following events:

* Subscribe\
  -> A new contact has been added to Mailchimp, create the contact in beabee
* Change email\
  -> A contact's email address has changed, update it in beabee
* Update profile\
  -> A contact's profile data has changed, update it in beabee<br>
* **Note:** We currently only support updating the contact's first name and last name, all other updates are ignored

### From beabee to Mailchimp

#### Immediately when an action is triggered in beabee:

* A new contact is created\
  -> Create the contact in Mailchimp
* A contact is updated (e.g. update address, contribution, etc.)\
  -> Update the contact's merge fields in Mailchimp
* A contact's membership role becomes active\
  -> Add the "Active member" tag
* A contact's membership role becomes inactive\
  -> Remove the "Active member" tag, set their status to unsubscribed
* A contact answers a call out that has been assigned a newsletter merge field\
  -> Update the contact's merge field with their answer to the call out
* Resync is triggered\
  -> All contacts are reuploaded to Mailchimp, overwriting all merge fields and creating any unknown contacts in an unsubscribed state. Contacts that are only in Mailchimp are imported into beabee\
  **Note:** We don't currently sync tags

#### Daily jobs:

* Archive members that have expired in the last day\
  -> Remove the "Active member" tag, set their status to archived
* Update members who have joined a segment in the last day\
  -> Add segment tag to contact in Mailchimp
* Update members who have left a segment in the last day\
  -> Remove segment tag from contact in Mailchimp

#### Problems:

* If a contact manually unsubscribes from Mailchimp they can't be opted back in via the API at a later date


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.beabee.io/help-center-english/mailchimp-integration/synchronisation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
