
Synerise lets you use default marketing agreements (such as for email newsletters) and create your custom ones, for example consent to receive communications that feature alcohol.  
The custom agreements are profile attributes, which are then used to recognize the customers who enabled them (for example, to create target audiences for an ad) and can be managed like any other attribute with the APIs and SDKs.


<div class="admonition admonition-important"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

If you use the [WooCommerce](/docs/settings/tool/woocommerce-integration) or Magento ([v1.x](/docs/settings/tool/magento/magento-integration) or [v2.x](/docs/settings/tool/magento/magento-integration-multistore-support)) plugins, you can configure agreement collection and data synchronization in those plugins instead of following the scenarios described further in this article.

</div></div></div>


You can:
- [Collect agreements in other tools and import them into Synerise to facilitate communication with customers.](#pulling-data-from-other-systems-into-synerise)
- [Use Synerise as the main agreement collection tool and database and export that data to your other databases.](#synerise-as-the-central-agreement-database)

## Pulling data from other systems into Synerise

| If you want to: | then: |
| --- | --- |
| <ul><li>use an external system as the central agreement database,</li><li>use the external system and Synerise to send communications,</li><li>use Synerise to collect additional data about customers from their activity,</li></ul> | <ol><li>Collect consent data in the external system.</li><li>[Upload consent data (and then consent updates) into Synerise](#importing-data-into-synerise).</li><li>[Send data to the external system about new/updated profiles in Synerise](#exporting-data-from-synerise).</li><li>**Optional**: Collect email opt-out data [with a resignation page](#collecting-opt-out-data-with-a-resignation-page).</li></ol> |
|<ul><li>use an external system as the central agreement database,</li><li>use the external system and Synerise to send communications,</li> | <ol><li>Collect consent data in the external system.</li><li>[Upload consent data (and then consent updates) into Synerise](#importing-data-into-synerise).</li><li>**Optional**: Collect email opt-out data [with a resignation page](#collecting-opt-out-data-with-a-resignation-page).</li></ol> | ### Importing data into Synerise You can import profile data into Synerise in the following ways: - By using the [`/v4/clients/batch`](https://developers.synerise.com/ProfileManagement/ProfileManagement.html#operation/BatchAddOrUpdateClients) API endpoint.   If a profile sent in the request doesn't exist in Synerise, it is created.   Custom agreements are sent as properties of the `attributes` object.   See [developer guide](/developers/api/clients/profiles#creatingupdating-multiple-profiles). - By using the ["Import Profiles" node](/docs/automation/actions/synerise-integrations/import-customers) to upload the data from a CSV, XML, JSON or JSONL files from a server or from your device.   This solution lets you use data transformation to modify data while importing in order to meet the requirements (such as column names) of the Synerise database. Thanks to this, the data on your server or device doesn't need to be modified before being uploaded to Synerise. - By using [incoming integrations](/docs/automation/integration/incoming-webhook-node) to upload data. Such an incoming integration should be secured with JWT. The above solutions can be used in real-time (for each profile as soon as it changes) or periodically (for example, once a day for the whole profile database). ## Synerise as the central agreement database | If you want to: | then: |
| --- | --- |
| <ul><li>use Synerise collect and store consent data;</li><li>use Synerise to send communications;</li><li>export the data to an external system</li></ul> | <ol><li>**Only for email**: Set up the [automation for collecting consent](/docs/settings/configuration/newsletter-sign-up).</li><li>Create consent collection mechanisms.<ul>You can use:<li>[Collecting newsletter agreements](/developers/web/newsletter-agreements)</li><li>[Collecting custom agreements (custom agreements are profile attributes)](/developers/web/tracking-form-data)</li><li>Other methods, such as updating a profile over API, depending on your integration needs</li></ul></li><li>Use one of the [methods of exporting data](#exporting-data-from-synerise).</li><li>**Optional**: Collect email opt-out data [with a resignation page](#collecting-opt-out-data-with-a-resignation-page).</li></ol> |
| Use only Synerise to: <ul><li>collect and store consent data;</li><li>send communications</li> | <ol><li>**Only for email**: set up the [automation for collecting consent](/docs/settings/configuration/newsletter-sign-up).</li><li>Create consent collection mechanisms.<ul>You can use:<li>[Collecting newsletter agreements](/developers/web/newsletter-agreements)</li><li>[Collecting custom agreements (custom agreements are profile attributes)](/developers/web/tracking-form-data)</li><li>Other methods, such as updating a profile over API, depending on your integration needs</li></ul></li><li><li>**Optional**: Collect email opt-out data [with a resignation page](#collecting-opt-out-data-with-a-resignation-page).</li></ol> | ### Exporting data from Synerise Profile data can be exported from Synerise into your other systems by using Automations: - The [outgoing webhook integration](/docs/automation/integration/outgoing-webhook) lets you send an API request to any service.   The target endpoint must be capable of accepting large amounts of data in multiple requests.   These exports can be made: - in real-time, triggered for each profile when it's created or when its data changes. - Periodically, for the entire profile database or by using analytics to only send profiles that were created or modified since last export.   Each profile update/creation is a separate request to the external API. A batch export option is not available in Automation. - The [SFTP](/docs/automation/integration/sftp-integrations/sftp-send-file) and [HTTP](/docs/automation/integration/http-integrations/http-send-file) "Send File" nodes let you export a segment of profiles as a CSV file to another service.   An example of using SFTP integration with the "Get Profiles" node is described in [Efficiently Sync Customer Data Across Multiple Platforms Using Automation](/use-cases/synchronize-profile-data-with-external-services). <div class="admonition admonition-important"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content"> If you export data from Synerise and also import data into Synerise, be careful not to create a loop of requests which will trigger each other endlessly. </div></div></div> ## Collecting opt-out data with a resignation page You can use a resignation page to collect email opt-outs. It can be created in one of your systems or in Synerise. ### External resignation page When creating an email in Synerise, you can add a link to your own resignation page that sends data directly to your system.   After the customer opts out, you need to inform Synerise about the consent update.  - If your integration is configured to push data into Synerise immediately when a profile is updated, you don't need to do anything additionally. - If you normally import data periodically, you should update opt-out data immediately.   You can do this: - with the [methods for importing data](#importing-data-into-synerise) into Synerise. - by including the tracking code to send an event and trigger an [automation that updates the profile](/docs/automation/actions/change-attribute-node) with the new consent status (`newsletter_agreement = disabled`). ### Resignation page created in Synerise If you use a [Synerise landing page](/docs/campaign/landing-page) to collect opt-outs, you need to: 1. Update the agreement in one of the following ways:   - use an event with information about the opt-out to trigger [an automation that updates the profile](/docs/automation/actions/change-attribute-node) with the new consent status (`newsletter_agreement = disabled`). - use a [form or the JS SDK](/developers/web/newsletter-agreements). 2. [Export the updated consent data to an external system.](#exporting-data-from-synerise).