diff --git a/amperity_base/source/_templates/destinations.html b/amperity_base/source/_templates/destinations.html
index 60210a9b..adaa46f8 100644
--- a/amperity_base/source/_templates/destinations.html
+++ b/amperity_base/source/_templates/destinations.html
@@ -442,6 +442,21 @@
diff --git a/amperity_modals/source/destination-bloomreach.rst b/amperity_modals/source/destination-bloomreach.rst
new file mode 100644
index 00000000..dd626ebf
--- /dev/null
+++ b/amperity_modals/source/destination-bloomreach.rst
@@ -0,0 +1,97 @@
+.. /downloads/markdown/
+
+
+.. |destination-name| replace:: Bloomreach Engagement
+.. |audience-primary-key| replace:: "email"
+.. |what-send| replace:: customer profiles
+.. |where-send| replace:: |destination-name|
+
+
+Bloomreach
+==================================================
+
+.. include:: ../../shared/terms.rst
+ :start-after: .. term-bloomreach-start
+ :end-before: .. term-bloomreach-end
+
+
+Credentials
+==================================================
+
+**Name and description**
+
+.. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-common-name-and-description-start
+ :end-before: .. credential-common-name-and-description-end
+
+**API base URL**
+
+.. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-base-url-start
+ :end-before: .. credential-bloomreach-base-url-end
+
+**Project token**
+
+.. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-project-token-start
+ :end-before: .. credential-bloomreach-project-token-end
+
+**API key ID**
+
+.. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-api-key-id-start
+ :end-before: .. credential-bloomreach-api-key-id-end
+
+**API secret**
+
+.. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-api-secret-start
+ :end-before: .. credential-bloomreach-api-secret-end
+
+.. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-find-credentials-start
+ :end-before: .. credential-bloomreach-find-credentials-end
+
+
+Settings
+==================================================
+
+**Name and description**
+
+.. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-common-name-and-description-start
+ :end-before: .. setting-common-name-and-description-end
+
+**Business user access**
+
+.. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-common-business-user-access-allow-start
+ :end-before: .. setting-common-business-user-access-allow-end
+
+.. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-common-business-user-access-restrict-pii-start
+ :end-before: .. setting-common-business-user-access-restrict-pii-end
+
+**Import name**
+
+.. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-bloomreach-import-name-start
+ :end-before: .. setting-bloomreach-import-name-end
+
+**Identity column**
+
+.. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-bloomreach-identity-column-start
+ :end-before: .. setting-bloomreach-identity-column-end
+
+**Identity source column**
+
+.. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-bloomreach-identity-source-column-start
+ :end-before: .. setting-bloomreach-identity-source-column-end
+
+**Campaign file settings**
+
+.. include:: ../../shared/destination_settings.rst
+ :start-after: .. campaigns-steps-campaign-settings-start
+ :end-before: .. campaigns-steps-campaign-settings-end
diff --git a/amperity_modals/source/index.rst b/amperity_modals/source/index.rst
index 53a885a0..9d8832a4 100755
--- a/amperity_modals/source/index.rst
+++ b/amperity_modals/source/index.rst
@@ -28,6 +28,8 @@ Site Index
destination-attentivemobile
destination-azure-blob
destination-bazaar-voice
+ destination-bloomreach
+
destination-blue-core
destination-braze
destination-braze-cohorts
diff --git a/amperity_operator/source/campaign_bloomreach.rst b/amperity_operator/source/campaign_bloomreach.rst
new file mode 100644
index 00000000..b410d445
--- /dev/null
+++ b/amperity_operator/source/campaign_bloomreach.rst
@@ -0,0 +1,374 @@
+.. https://docs.amperity.com/operator/
+
+
+.. |destination-name| replace:: Bloomreach Engagement
+.. |destination-api| replace:: Bloomreach Engagement API
+.. |plugin-name| replace:: "Bloomreach"
+.. |credential-type| replace:: "bloomreach"
+.. |required-credentials| replace:: "API base URL", "Project token", "API key ID", and "API secret"
+.. |audience-primary-key| replace:: "email"
+.. |what-send| replace:: customer profiles
+.. |where-send| replace:: |destination-name|
+.. |filter-the-list| replace:: "blo"
+.. |allow-for-what| replace:: audiences
+.. |allow-for-duration| replace:: up to 48 hours
+
+
+.. meta::
+ :description lang=en:
+ Configure Amperity to send campaigns to Bloomreach Engagement.
+
+.. meta::
+ :content class=swiftype name=body data-type=text:
+ Configure Amperity to send campaigns to Bloomreach Engagement.
+
+.. meta::
+ :content class=swiftype name=title data-type=string:
+ Configure campaigns for Bloomreach
+
+==================================================
+Configure campaigns for Bloomreach
+==================================================
+
+.. include:: ../../shared/terms.rst
+ :start-after: .. term-bloomreach-start
+ :end-before: .. term-bloomreach-end
+
+.. campaign-bloomreach-start
+
+Use Amperity to send campaigns to |destination-name|. Build a campaign in Amperity to define the audience and attributes to send, then configure the destination to send customer profiles to |destination-name| for segmentation and personalization. Customer profiles are identified by a Bloomreach hard identifier such as email, cookie, Google Analytics ID, or external ID.
+
+.. campaign-bloomreach-end
+
+.. campaign-bloomreach-api-note-start
+
+.. note:: This destination uses the `Bloomreach Engagement API `__ |ext_link|.
+
+.. campaign-bloomreach-api-note-end
+
+.. include:: destination_bloomreach.rst
+ :start-after: .. destination-bloomreach-import-replace-start
+ :end-before: .. destination-bloomreach-import-replace-end
+
+.. include:: destination_bloomreach.rst
+ :start-after: .. destination-bloomreach-import-limit-start
+ :end-before: .. destination-bloomreach-import-limit-end
+
+.. include:: destination_bloomreach.rst
+ :start-after: .. destination-bloomreach-async-start
+ :end-before: .. destination-bloomreach-async-end
+
+
+.. _campaign-bloomreach-get-details:
+
+Get details
+==================================================
+
+.. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-common-get-details-start
+ :end-before: .. setting-common-get-details-end
+
+.. campaign-bloomreach-get-details-table-start
+
+.. list-table::
+ :widths: 10 90
+ :header-rows: 0
+
+ * - .. image:: ../../images/steps-check-off-black.png
+ :width: 60 px
+ :alt: Detail 1.
+ :align: center
+ :class: no-scaled-link
+ - **Credential settings**
+
+ **API base URL**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-base-url-start
+ :end-before: .. credential-bloomreach-base-url-end
+
+ **Project token**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-project-token-start
+ :end-before: .. credential-bloomreach-project-token-end
+
+ **API key ID**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-api-key-id-start
+ :end-before: .. credential-bloomreach-api-key-id-end
+
+ **API secret**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-api-secret-start
+ :end-before: .. credential-bloomreach-api-secret-end
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-find-credentials-start
+ :end-before: .. credential-bloomreach-find-credentials-end
+
+ * - .. image:: ../../images/steps-check-off-black.png
+ :width: 60 px
+ :alt: Detail 2.
+ :align: center
+ :class: no-scaled-link
+ - **Required configuration settings**
+
+ **Import name**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-bloomreach-import-name-start
+ :end-before: .. setting-bloomreach-import-name-end
+
+ **Identity column**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-bloomreach-identity-column-start
+ :end-before: .. setting-bloomreach-identity-column-end
+
+ **Identity source column**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-bloomreach-identity-source-column-start
+ :end-before: .. setting-bloomreach-identity-source-column-end
+
+ * - .. image:: ../../images/steps-check-off-black.png
+ :width: 60 px
+ :alt: Detail 3.
+ :align: center
+ :class: no-scaled-link
+ - A campaign that outputs the fields that must be sent to the |destination-name| customer table.
+
+.. campaign-bloomreach-get-details-table-end
+
+
+.. _campaign-bloomreach-credentials:
+
+Configure credentials
+==================================================
+
+.. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-configure-first-start
+ :end-before: .. credential-configure-first-end
+
+.. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-snappass-start
+ :end-before: .. credential-snappass-end
+
+**To configure credentials for Bloomreach**
+
+.. campaign-bloomreach-credentials-steps-start
+
+.. list-table::
+ :widths: 10 90
+ :header-rows: 0
+
+ * - .. image:: ../../images/steps-01.png
+ :width: 60 px
+ :alt: Step one.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-steps-add-credential-start
+ :end-before: .. credential-steps-add-credential-end
+
+ * - .. image:: ../../images/steps-02.png
+ :width: 60 px
+ :alt: Step two.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-steps-select-type-start
+ :end-before: .. credential-steps-select-type-end
+
+ * - .. image:: ../../images/steps-03.png
+ :width: 60 px
+ :alt: Step three.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-steps-settings-intro-start
+ :end-before: .. credential-steps-settings-intro-end
+
+ **API base URL**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-base-url-start
+ :end-before: .. credential-bloomreach-base-url-end
+
+ **Project token**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-project-token-start
+ :end-before: .. credential-bloomreach-project-token-end
+
+ **API key ID**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-api-key-id-start
+ :end-before: .. credential-bloomreach-api-key-id-end
+
+ **API secret**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-api-secret-start
+ :end-before: .. credential-bloomreach-api-secret-end
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-find-credentials-start
+ :end-before: .. credential-bloomreach-find-credentials-end
+
+.. campaign-bloomreach-credentials-steps-end
+
+
+.. _campaign-bloomreach-add:
+
+Add destination
+==================================================
+
+.. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-common-sandbox-recommendation-start
+ :end-before: .. setting-common-sandbox-recommendation-end
+
+**To add a destination for Bloomreach**
+
+.. campaign-bloomreach-add-steps-start
+
+.. list-table::
+ :widths: 10 90
+ :header-rows: 0
+
+ * - .. image:: ../../images/steps-01.png
+ :width: 60 px
+ :alt: Step one.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/destination_settings.rst
+ :start-after: .. campaigns-steps-add-destinations-start
+ :end-before: .. campaigns-steps-add-destinations-end
+
+ .. image:: ../../images/mockup-destinations-add-01-select-destination-common.png
+ :width: 380 px
+ :alt: Add destination
+ :align: left
+ :class: no-scaled-link
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. campaigns-steps-add-destinations-select-start
+ :end-before: .. campaigns-steps-add-destinations-select-end
+
+
+ * - .. image:: ../../images/steps-02.png
+ :width: 60 px
+ :alt: Step two.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/destination_settings.rst
+ :start-after: .. campaigns-steps-select-credential-start
+ :end-before: .. campaigns-steps-select-credential-end
+
+ .. tip::
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. campaigns-steps-test-connection-start
+ :end-before: .. campaigns-steps-test-connection-end
+
+
+ * - .. image:: ../../images/steps-03.png
+ :width: 60 px
+ :alt: Step three.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/destination_settings.rst
+ :start-after: .. campaigns-steps-name-and-description-start
+ :end-before: .. campaigns-steps-name-and-description-end
+
+ .. admonition:: Configure business user access
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-common-business-user-access-allow-start
+ :end-before: .. setting-common-business-user-access-allow-end
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-common-business-user-access-restrict-pii-start
+ :end-before: .. setting-common-business-user-access-restrict-pii-end
+
+
+ * - .. image:: ../../images/steps-04.png
+ :width: 60 px
+ :alt: Step four.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/destination_settings.rst
+ :start-after: .. campaigns-steps-settings-start
+ :end-before: .. campaigns-steps-settings-end
+
+ **Campaign file settings**
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. campaigns-steps-campaign-settings-start
+ :end-before: .. campaigns-steps-campaign-settings-end
+
+ **Import name**
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-bloomreach-import-name-start
+ :end-before: .. setting-bloomreach-import-name-end
+
+ **Identity column**
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-bloomreach-identity-column-start
+ :end-before: .. setting-bloomreach-identity-column-end
+
+ **Identity source column**
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-bloomreach-identity-source-column-start
+ :end-before: .. setting-bloomreach-identity-source-column-end
+
+
+ * - .. image:: ../../images/steps-05.png
+ :width: 60 px
+ :alt: Step five.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/destination_settings.rst
+ :start-after: .. campaigns-steps-business-users-start
+ :end-before: .. campaigns-steps-business-users-end
+
+
+ * - .. image:: ../../images/steps-06.png
+ :width: 60 px
+ :alt: Step six.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/destination_settings.rst
+ :start-after: .. destinations-steps-validate-audience-start
+ :end-before: .. destinations-steps-validate-audience-end
+
+.. campaign-bloomreach-add-steps-end
diff --git a/amperity_operator/source/destination_bloomreach.rst b/amperity_operator/source/destination_bloomreach.rst
new file mode 100644
index 00000000..c25194da
--- /dev/null
+++ b/amperity_operator/source/destination_bloomreach.rst
@@ -0,0 +1,374 @@
+.. https://docs.amperity.com/operator/
+
+
+.. |destination-name| replace:: Bloomreach Engagement
+.. |destination-api| replace:: Bloomreach Engagement API
+.. |plugin-name| replace:: "Bloomreach"
+.. |credential-type| replace:: "bloomreach"
+.. |required-credentials| replace:: "API base URL", "Project token", "API key ID", and "API secret"
+.. |audience-primary-key| replace:: "email"
+.. |what-send| replace:: customer profiles
+.. |where-send| replace:: |destination-name|
+.. |filter-the-list| replace:: "blo"
+.. |allow-for-what| replace:: audiences
+.. |allow-for-duration| replace:: up to 48 hours
+
+
+.. meta::
+ :description lang=en:
+ Configure Amperity to send data to Bloomreach Engagement.
+
+.. meta::
+ :content class=swiftype name=body data-type=text:
+ Configure Amperity to send data to Bloomreach Engagement.
+
+.. meta::
+ :content class=swiftype name=title data-type=string:
+ Configure destinations for Bloomreach
+
+==================================================
+Configure destinations for Bloomreach
+==================================================
+
+.. include:: ../../shared/terms.rst
+ :start-after: .. term-bloomreach-start
+ :end-before: .. term-bloomreach-end
+
+.. destination-bloomreach-start
+
+Use Amperity to manage customer profiles in |destination-name|. Build a query or segment, and then send customer data to |destination-name| for segmentation, campaigns, and personalization. Customer profiles are identified by a Bloomreach hard identifier such as email, cookie, Google Analytics ID, or external ID.
+
+.. destination-bloomreach-end
+
+.. destination-bloomreach-api-note-start
+
+.. note:: This destination uses the `Bloomreach Engagement API `__ |ext_link|.
+
+.. destination-bloomreach-api-note-end
+
+.. destination-bloomreach-import-replace-start
+
+.. note:: New imports replace existing imports in |destination-name| that have the same import name. Use a unique import name for each orchestration or campaign to avoid overwriting data unintentionally.
+
+.. destination-bloomreach-import-replace-end
+
+.. destination-bloomreach-import-limit-start
+
+.. caution:: Bloomreach limits each project to 25 active import definitions. When the limit is reached, Amperity automatically deletes the oldest Amperity-created import to make room for the new one. If all 25 imports were created outside of Amperity, the send will fail with a message asking the user to delete unused imports in Bloomreach to free a slot.
+
+.. destination-bloomreach-import-limit-end
+
+.. destination-bloomreach-async-start
+
+.. note:: |destination-name| processes imports asynchronously after Amperity sends the data. Amperity reports rows as succeeded once the import is triggered. There is no import status tracking.
+
+.. destination-bloomreach-async-end
+
+
+.. _destination-bloomreach-get-details:
+
+Get details
+==================================================
+
+.. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-common-get-details-start
+ :end-before: .. setting-common-get-details-end
+
+.. destination-bloomreach-get-details-table-start
+
+.. list-table::
+ :widths: 10 90
+ :header-rows: 0
+
+ * - .. image:: ../../images/steps-check-off-black.png
+ :width: 60 px
+ :alt: Detail 1.
+ :align: center
+ :class: no-scaled-link
+ - **Credential settings**
+
+ **API base URL**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-base-url-start
+ :end-before: .. credential-bloomreach-base-url-end
+
+ **Project token**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-project-token-start
+ :end-before: .. credential-bloomreach-project-token-end
+
+ **API key ID**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-api-key-id-start
+ :end-before: .. credential-bloomreach-api-key-id-end
+
+ **API secret**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-api-secret-start
+ :end-before: .. credential-bloomreach-api-secret-end
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-find-credentials-start
+ :end-before: .. credential-bloomreach-find-credentials-end
+
+ * - .. image:: ../../images/steps-check-off-black.png
+ :width: 60 px
+ :alt: Detail 2.
+ :align: center
+ :class: no-scaled-link
+ - **Required configuration settings**
+
+ **Import name**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-bloomreach-import-name-start
+ :end-before: .. setting-bloomreach-import-name-end
+
+ **Identity column**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-bloomreach-identity-column-start
+ :end-before: .. setting-bloomreach-identity-column-end
+
+ **Identity source column**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-bloomreach-identity-source-column-start
+ :end-before: .. setting-bloomreach-identity-source-column-end
+
+ * - .. image:: ../../images/steps-check-off-black.png
+ :width: 60 px
+ :alt: Detail 3.
+ :align: center
+ :class: no-scaled-link
+ - A query that outputs the fields that must be sent to the |destination-name| customer table.
+
+.. destination-bloomreach-get-details-end
+
+
+.. _destination-bloomreach-credentials:
+
+Configure credentials
+==================================================
+
+.. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-configure-first-start
+ :end-before: .. credential-configure-first-end
+
+.. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-snappass-start
+ :end-before: .. credential-snappass-end
+
+**To configure credentials for Bloomreach**
+
+.. destination-bloomreach-credentials-steps-start
+
+.. list-table::
+ :widths: 10 90
+ :header-rows: 0
+
+ * - .. image:: ../../images/steps-01.png
+ :width: 60 px
+ :alt: Step one.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-steps-add-credential-start
+ :end-before: .. credential-steps-add-credential-end
+
+ * - .. image:: ../../images/steps-02.png
+ :width: 60 px
+ :alt: Step two.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-steps-select-type-start
+ :end-before: .. credential-steps-select-type-end
+
+ * - .. image:: ../../images/steps-03.png
+ :width: 60 px
+ :alt: Step three.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-steps-settings-intro-start
+ :end-before: .. credential-steps-settings-intro-end
+
+ **API base URL**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-base-url-start
+ :end-before: .. credential-bloomreach-base-url-end
+
+ **Project token**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-project-token-start
+ :end-before: .. credential-bloomreach-project-token-end
+
+ **API key ID**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-api-key-id-start
+ :end-before: .. credential-bloomreach-api-key-id-end
+
+ **API secret**
+
+ |checkmark-required| **Required**
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-api-secret-start
+ :end-before: .. credential-bloomreach-api-secret-end
+
+ .. include:: ../../shared/credentials_settings.rst
+ :start-after: .. credential-bloomreach-find-credentials-start
+ :end-before: .. credential-bloomreach-find-credentials-end
+
+.. destination-bloomreach-credentials-steps-end
+
+
+.. _destination-bloomreach-add:
+
+Add destination
+==================================================
+
+.. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-common-sandbox-recommendation-start
+ :end-before: .. setting-common-sandbox-recommendation-end
+
+**To add a destination for Bloomreach**
+
+.. destination-bloomreach-add-steps-start
+
+.. list-table::
+ :widths: 10 90
+ :header-rows: 0
+
+ * - .. image:: ../../images/steps-01.png
+ :width: 60 px
+ :alt: Step one.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/destination_settings.rst
+ :start-after: .. destinations-steps-add-destinations-start
+ :end-before: .. destinations-steps-add-destinations-end
+
+ .. image:: ../../images/mockup-destinations-add-01-select-destination-common.png
+ :width: 380 px
+ :alt: Add destination
+ :align: left
+ :class: no-scaled-link
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. destinations-steps-add-destinations-select-start
+ :end-before: .. destinations-steps-add-destinations-select-end
+
+
+ * - .. image:: ../../images/steps-02.png
+ :width: 60 px
+ :alt: Step two.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/destination_settings.rst
+ :start-after: .. destinations-steps-select-credential-start
+ :end-before: .. destinations-steps-select-credential-end
+
+ .. tip::
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. destinations-steps-test-connection-start
+ :end-before: .. destinations-steps-test-connection-end
+
+
+ * - .. image:: ../../images/steps-03.png
+ :width: 60 px
+ :alt: Step three.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/destination_settings.rst
+ :start-after: .. destinations-steps-name-and-description-start
+ :end-before: .. destinations-steps-name-and-description-end
+
+ .. admonition:: Configure business user access
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-common-business-user-access-allow-start
+ :end-before: .. setting-common-business-user-access-allow-end
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-common-business-user-access-restrict-pii-start
+ :end-before: .. setting-common-business-user-access-restrict-pii-end
+
+
+ * - .. image:: ../../images/steps-04.png
+ :width: 60 px
+ :alt: Step four.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/destination_settings.rst
+ :start-after: .. destinations-steps-settings-start
+ :end-before: .. destinations-steps-settings-end
+
+ **Import name**
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-bloomreach-import-name-start
+ :end-before: .. setting-bloomreach-import-name-end
+
+ **Identity column**
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-bloomreach-identity-column-start
+ :end-before: .. setting-bloomreach-identity-column-end
+
+ **Identity source column**
+
+ .. include:: ../../shared/destination_settings.rst
+ :start-after: .. setting-bloomreach-identity-source-column-start
+ :end-before: .. setting-bloomreach-identity-source-column-end
+
+
+ * - .. image:: ../../images/steps-05.png
+ :width: 60 px
+ :alt: Step five.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/destination_settings.rst
+ :start-after: .. destinations-steps-business-users-start
+ :end-before: .. destinations-steps-business-users-end
+
+
+ * - .. image:: ../../images/steps-06.png
+ :width: 60 px
+ :alt: Step six.
+ :align: center
+ :class: no-scaled-link
+ - .. include:: ../../shared/destination_settings.rst
+ :start-after: .. destinations-steps-validate-audience-start
+ :end-before: .. destinations-steps-validate-audience-end
+
+.. destination-bloomreach-add-steps-end
diff --git a/amperity_operator/source/grid_campaigns.rst b/amperity_operator/source/grid_campaigns.rst
index 2f941752..6fe8c3e1 100755
--- a/amperity_operator/source/grid_campaigns.rst
+++ b/amperity_operator/source/grid_campaigns.rst
@@ -90,6 +90,10 @@ Configure Amperity to send campaigns to any marketing workflow.
:link-type: doc
:link: campaign_bazaarvoice
+ .. grid-item-card:: Bloomreach
+ :link-type: doc
+ :link: campaign_bloomreach
+
.. grid-item-card:: Bluecore
:link-type: doc
:link: campaign_bluecore
@@ -357,6 +361,8 @@ Configure Amperity to send campaigns to any marketing workflow.
Attentive (Audiences)
Azure Blob Storage
BazaarVoice
+ Bloomreach
+
Bluecore
Braze
Camelot SMM
diff --git a/amperity_operator/source/grid_destinations.rst b/amperity_operator/source/grid_destinations.rst
index 14da7cf2..1a916a8c 100755
--- a/amperity_operator/source/grid_destinations.rst
+++ b/amperity_operator/source/grid_destinations.rst
@@ -110,6 +110,10 @@ Set up connections to send data from Amperity to other marketing applications, t
:link-type: doc
:link: destination_bazaarvoice
+ .. grid-item-card:: Bloomreach
+ :link-type: doc
+ :link: destination_bloomreach
+
.. grid-item-card:: Bluecore
:link-type: doc
:link: destination_bluecore
@@ -440,6 +444,8 @@ Set up connections to send data from Amperity to other marketing applications, t
Azure Blob Storage
Azure Synapse Analytics
BazaarVoice
+ Bloomreach
+
Bluecore
Braze
Braze Cohorts
diff --git a/amperity_user/source/campaign_bloomreach.rst b/amperity_user/source/campaign_bloomreach.rst
new file mode 100644
index 00000000..a46e2bc2
--- /dev/null
+++ b/amperity_user/source/campaign_bloomreach.rst
@@ -0,0 +1,203 @@
+.. https://docs.amperity.com/user/
+
+
+.. |destination-name| replace:: Bloomreach Engagement
+.. |what-send| replace:: customer profiles
+.. |what-enable| replace:: customer profiles to be sent
+.. |attributes-sent| replace:: **email**, **cookie**, **google_analytics**, or **external_id**
+
+
+.. meta::
+ :description lang=en:
+ Use segments and campaigns to send audiences from Amperity to Bloomreach Engagement.
+
+.. meta::
+ :content class=swiftype name=body data-type=text:
+ Use segments and campaigns to send audiences from Amperity to Bloomreach Engagement.
+
+.. meta::
+ :content class=swiftype name=title data-type=string:
+ Send audiences to Bloomreach
+
+==================================================
+Send audiences to Bloomreach
+==================================================
+
+.. include:: ../../shared/terms.rst
+ :start-after: .. term-bloomreach-start
+ :end-before: .. term-bloomreach-end
+
+.. include:: ../../amperity_operator/source/destination_bloomreach.rst
+ :start-after: .. destination-bloomreach-api-note-start
+ :end-before: .. destination-bloomreach-api-note-end
+
+.. include:: ../../shared/channels.rst
+ :start-after: .. channels-overview-list-intro-start
+ :end-before: .. channels-overview-list-intro-end
+
+.. include:: ../../shared/channels.rst
+ :start-after: .. channels-overview-note-start
+ :end-before: .. channels-overview-note-end
+
+.. include:: ../../shared/sendtos.rst
+ :start-after: .. sendtos-ask-to-configure-campaigns-start
+ :end-before: .. sendtos-ask-to-configure-campaigns-end
+
+
+.. _channel-bloomreach-build-segment:
+
+Build a segment
+==================================================
+
+.. include:: ../../shared/channels.rst
+ :start-after: .. channels-build-segment-start
+ :end-before: .. channels-build-segment-end
+
+.. admonition:: About paid media campaigns
+
+ .. include:: ../../shared/channels.rst
+ :start-after: .. channels-build-segment-context-start
+ :end-before: .. channels-build-segment-context-end
+
+.. channel-bloomreach-build-segment-important-start
+
+.. important:: The segment you build must include a Bloomreach hard identifier such as email, external ID, cookie, or Google Analytics ID. All other attributes in your segment will be sent as customer properties to |destination-name|. Rows with blank values in the identity column will be skipped.
+
+.. channel-bloomreach-build-segment-important-end
+
+
+.. _channel-bloomreach-build-campaign:
+
+Add to a campaign
+==================================================
+
+.. include:: ../../shared/channels.rst
+ :start-after: .. channels-build-campaign-start
+ :end-before: .. channels-build-campaign-end
+
+**To add a campaign for Bloomreach**
+
+.. channel-bloomreach-build-campaign-steps-start
+
+.. list-table::
+ :widths: 10 90
+ :header-rows: 0
+
+ * - .. image:: ../../images/steps-01.png
+ :width: 60 px
+ :alt: Step 1.
+ :align: left
+ :class: no-scaled-link
+ - .. include:: ../../shared/channels.rst
+ :start-after: .. channels-build-campaign-steps-open-page-start
+ :end-before: .. channels-build-campaign-steps-open-page-end
+
+
+ * - .. image:: ../../images/steps-02.png
+ :width: 60 px
+ :alt: Step 2.
+ :align: left
+ :class: no-scaled-link
+ - .. include:: ../../shared/channels.rst
+ :start-after: .. channels-build-campaign-steps-destinations-start
+ :end-before: .. channels-build-campaign-steps-destinations-end
+
+ .. include:: ../../shared/channels.rst
+ :start-after: .. channels-build-campaign-steps-destinations-note-start
+ :end-before: .. channels-build-campaign-steps-destinations-note-end
+
+
+ * - .. image:: ../../images/steps-03.png
+ :width: 60 px
+ :alt: Step 3.
+ :align: left
+ :class: no-scaled-link
+ - .. include:: ../../shared/channels.rst
+ :start-after: .. channels-build-campaign-steps-edit-attributes-start
+ :end-before: .. channels-build-campaign-steps-edit-attributes-end
+
+ .. include:: ../../shared/channels.rst
+ :start-after: .. channels-build-campaign-steps-edit-attributes-note-start
+ :end-before: .. channels-build-campaign-steps-edit-attributes-note-end
+
+.. channel-bloomreach-build-campaign-steps-end
+
+
+.. _channel-bloomreach-configure-default-attributes:
+
+Configure default attributes
+==================================================
+
+.. include:: ../../shared/channels.rst
+ :start-after: .. channels-configure-default-attributes-start
+ :end-before: .. channels-configure-default-attributes-end
+
+.. channel-bloomreach-configure-default-attributes-table-start
+
+.. list-table::
+ :widths: 50 50
+ :header-rows: 1
+
+ * - Source attribute
+ - Destination attribute
+ * - **email**
+ - **email**
+
+ The email address for the customer. This is a Bloomreach hard identifier.
+
+ * - **external_id**
+ - **external_id**
+
+ An external identifier for the customer, such as the Amperity ID. This is a Bloomreach hard identifier.
+
+ * - **cookie**
+ - **cookie**
+
+ A cookie identifier for the customer. This is a Bloomreach hard identifier.
+
+ * - **google_analytics**
+ - **google_analytics**
+
+ A Google Analytics identifier for the customer. This is a Bloomreach hard identifier.
+
+ * - **given_name**
+ - **given_name**
+
+ The first name of the customer.
+
+ * - **surname**
+ - **surname**
+
+ The last name of the customer.
+
+ * - **birthdate**
+ - **birthdate**
+
+ The birthdate of the customer.
+
+ * - **city**
+ - **city**
+
+ The city in which the customer lives.
+
+ * - **state**
+ - **state**
+
+ The state in which the customer lives.
+
+ * - **postal**
+ - **postal**
+
+ The ZIP code or postal code for the customer.
+
+ * - **phone**
+ - **phone**
+
+ The phone number for the customer.
+
+ * - **gender**
+ - **gender**
+
+ The gender of the customer.
+
+.. channel-bloomreach-configure-default-attributes-table-end
diff --git a/amperity_user/source/destination_bloomreach.rst b/amperity_user/source/destination_bloomreach.rst
new file mode 100644
index 00000000..189b28e8
--- /dev/null
+++ b/amperity_user/source/destination_bloomreach.rst
@@ -0,0 +1,154 @@
+.. https://docs.amperity.com/user/
+
+
+.. |destination-name| replace:: Bloomreach Engagement
+.. |what-send| replace:: customer profiles
+
+
+.. meta::
+ :description lang=en:
+ Use orchestrations to send query results from Amperity to Bloomreach Engagement.
+
+.. meta::
+ :content class=swiftype name=body data-type=text:
+ Use orchestrations to send query results from Amperity to Bloomreach Engagement.
+
+.. meta::
+ :content class=swiftype name=title data-type=string:
+ Send query results to Bloomreach
+
+==================================================
+Send query results to Bloomreach
+==================================================
+
+.. include:: ../../shared/terms.rst
+ :start-after: .. term-bloomreach-start
+ :end-before: .. term-bloomreach-end
+
+.. include:: ../../amperity_operator/source/destination_bloomreach.rst
+ :start-after: .. destination-bloomreach-api-note-start
+ :end-before: .. destination-bloomreach-api-note-end
+
+.. include:: ../../shared/destinations.rst
+ :start-after: .. destinations-overview-list-intro-start
+ :end-before: .. destinations-overview-list-intro-end
+
+.. sendto-bloomreach-steps-to-send-start
+
+.. list-table::
+ :widths: 10 90
+ :header-rows: 0
+
+ * - .. image:: ../../images/steps-01.png
+ :width: 60 px
+ :alt: Step 1.
+ :align: left
+ :class: no-scaled-link
+ - :ref:`Build a query `
+
+ * - .. image:: ../../images/steps-02.png
+ :width: 60 px
+ :alt: Step 2.
+ :align: left
+ :class: no-scaled-link
+ - :ref:`Add orchestration `
+
+ * - .. image:: ../../images/steps-03.png
+ :width: 60 px
+ :alt: Step 3.
+ :align: left
+ :class: no-scaled-link
+ - :ref:`Run orchestration `
+
+.. sendto-bloomreach-steps-to-send-end
+
+.. include:: ../../shared/sendtos.rst
+ :start-after: .. sendtos-ask-to-configure-start
+ :end-before: .. sendtos-ask-to-configure-end
+
+
+.. _sendto-bloomreach-build-query:
+
+Build query
+==================================================
+
+.. sendto-bloomreach-build-query-start
+
+You will need to build a query that outputs the fields you want to send to |destination-name|. The query must include a Bloomreach hard identifier such as email, external ID, cookie, or Google Analytics ID. All other columns in your query results will be sent as customer properties.
+
+.. sendto-bloomreach-build-query-end
+
+.. sendto-bloomreach-build-query-example-start
+
+The following example shows a query that returns customer profiles using email as the identifier:
+
+.. code-block:: sql
+
+ SELECT
+ email
+ ,given_name
+ ,surname
+ ,city
+ ,state
+ ,postal
+ ,birthdate
+ ,gender
+ FROM Customer360
+ WHERE email IS NOT NULL
+
+.. sendto-bloomreach-build-query-example-end
+
+.. sendto-bloomreach-build-query-example-external-id-start
+
+You can also use the Amperity ID as an external identifier:
+
+.. code-block:: sql
+
+ SELECT
+ amperity_id AS external_id
+ ,email
+ ,given_name
+ ,surname
+ ,phone
+ ,lifetime_order_revenue
+ ,lifetime_order_frequency
+ FROM Customer360
+ WHERE amperity_id IS NOT NULL
+
+.. sendto-bloomreach-build-query-example-external-id-end
+
+.. sendto-bloomreach-build-query-important-start
+
+.. important:: The column you use for the Bloomreach identifier must match the **Identity source column** setting configured for the destination. Rows with blank values in the identity column will be skipped.
+
+.. sendto-bloomreach-build-query-important-end
+
+
+.. _sendto-bloomreach-add-orchestration:
+
+Add orchestration
+==================================================
+
+.. include:: ../../shared/terms.rst
+ :start-after: .. term-orchestration-start
+ :end-before: .. term-orchestration-end
+
+.. include:: ../../shared/sendtos.rst
+ :start-after: .. sendtos-add-orchestration-generic-start
+ :end-before: .. sendtos-add-orchestration-generic-end
+
+
+.. _sendto-bloomreach-run-orchestration:
+
+Run orchestration
+==================================================
+
+.. include:: ../../shared/sendtos.rst
+ :start-after: .. sendtos-run-orchestration-start
+ :end-before: .. sendtos-run-orchestration-end
+
+**To run the orchestration**
+
+.. include:: ../../shared/sendtos.rst
+ :start-after: .. sendtos-run-orchestration-steps-start
+ :end-before: .. sendtos-run-orchestration-steps-end
diff --git a/amperity_user/source/grid_campaigns.rst b/amperity_user/source/grid_campaigns.rst
index b0bc053d..429ef07b 100755
--- a/amperity_user/source/grid_campaigns.rst
+++ b/amperity_user/source/grid_campaigns.rst
@@ -199,6 +199,10 @@ Send campaigns to any of the following marketing applications and workflows.
:link-type: doc
:link: campaign_azure_blob_storage
+ .. grid-item-card:: Bloomreach
+ :link-type: doc
+ :link: campaign_bloomreach
+
.. grid-item-card:: Braze
:link-type: doc
:link: campaign_braze
@@ -324,6 +328,7 @@ Send campaigns to any of the following marketing applications and workflows.
Amazon S3
Attentive
Azure Blob Storage
+ Bloomreach
Braze
Cheetah Digital
Cordial
diff --git a/amperity_user/source/grid_queries.rst b/amperity_user/source/grid_queries.rst
index d12d2d5b..1437553a 100755
--- a/amperity_user/source/grid_queries.rst
+++ b/amperity_user/source/grid_queries.rst
@@ -149,6 +149,10 @@ Send query results to downstream workflows and to support all of your brand's ma
:link-type: doc
:link: destination_bluecore
+ .. grid-item-card:: Bloomreach
+ :link-type: doc
+ :link: destination_bloomreach
+
.. grid-item-card:: Braze
:link-type: doc
:link: destination_braze
@@ -541,6 +545,7 @@ The following examples show using the visual **SQL Editor** to build audiences.
Azure Blob Storage
BazaarVoice
Bluecore
+ Bloomreach
Braze
Cheetah Digital
Cordial
diff --git a/shared/credentials_settings.rst b/shared/credentials_settings.rst
index 0af3e897..e083b58e 100755
--- a/shared/credentials_settings.rst
+++ b/shared/credentials_settings.rst
@@ -9,6 +9,40 @@
.. TODO: Placeholder content for testing and validation.
+.. credential-bloomreach-base-url-start
+
+The API base URL for your Bloomreach Engagement project.
+
+.. credential-bloomreach-base-url-end
+
+
+.. credential-bloomreach-project-token-start
+
+The project token for your Bloomreach Engagement project.
+
+.. credential-bloomreach-project-token-end
+
+
+.. credential-bloomreach-api-key-id-start
+
+The public API key ID for your Bloomreach Engagement project.
+
+.. credential-bloomreach-api-key-id-end
+
+
+.. credential-bloomreach-api-secret-start
+
+The private API secret for your Bloomreach Engagement project. The API key must have the "Imports > Allow to Create new Imports" permission enabled.
+
+.. credential-bloomreach-api-secret-end
+
+
+.. credential-bloomreach-find-credentials-start
+
+You can find the API base URL and project token in your Bloomreach Engagement project settings. The API key ID and API secret are available in the API access section of your project settings.
+
+.. credential-bloomreach-find-credentials-end
+
.. credential-iterable-api-key-start
The server-side API key for your |destination-name| account.
diff --git a/shared/destination_settings.rst b/shared/destination_settings.rst
index 57ad2046..1a24bff3 100755
--- a/shared/destination_settings.rst
+++ b/shared/destination_settings.rst
@@ -9,6 +9,26 @@
.. TODO: Placeholder content for testing and validation.
+.. setting-bloomreach-import-name-start
+
+The name of the import definition that will be created in Bloomreach Engagement. Amperity manages import definitions with this name.
+
+.. setting-bloomreach-import-name-end
+
+
+.. setting-bloomreach-identity-column-start
+
+The Bloomreach hard identifier to which the source column maps. Options include **email**, **cookie**, **google_analytics**, or **external_id**.
+
+.. setting-bloomreach-identity-column-end
+
+
+.. setting-bloomreach-identity-source-column-start
+
+The column in your dataset whose value is sent as the Bloomreach identifier. This column must be present in your dataset.
+
+.. setting-bloomreach-identity-source-column-end
+
.. setting-iterable-user-identifier-start
The field used to identify users in |destination-name|. Select **email** for email-based projects or **userId** for user ID-based projects.
diff --git a/shared/terms.rst b/shared/terms.rst
index f9bd8883..c960136c 100755
--- a/shared/terms.rst
+++ b/shared/terms.rst
@@ -963,6 +963,12 @@ Bluecore is a marketing technology company that intelligently connects casual sh
**blv_address**
+.. term-bloomreach-start
+
+Bloomreach Engagement (formerly Exponea) is a customer data and marketing automation platform. Use Bloomreach Engagement to create personalized customer experiences across multiple channels.
+
+.. term-bloomreach-end
+
.. term-blv-address-start
When true, the **address** on this customer profile matches a blocklist value.