---
title: Federated Audience Composition (FAC)
slug: docs/federated-audience-composition-fac
docTags: 
createdAt: 2024-08-19T12:06:26.630Z
---

## Product documentations & Availability

Federated Audience Composition (FAC) in Experience Platform enables you to access and create audiences with corresponding high-value attributes from enterprise data warehouses, which enrich and supplement the real-time customer profile and audiences in Experience Platform for improved segmentation, targeting, activation, and delivery of impactful customer experiences. Using Federated Audience Composition, a virtual database is created by linking remote databases through metadata. This approach simplifies access, reduces duplication, and enhances end-user experience.

[Federated Audience Composition (FAC) Overview](https://experienceleague.adobe.com/en/docs/federated-audience-composition/using/home)

**[Federated Audience Composition (FAC) Tutorial](https://experienceleague.adobe.com/en/docs/platform-learn/tutorials/audiences/overview-of-federated-audience-composition)**

[Getting started with audience composition](https://experienceleague.adobe.com/en/docs/federated-audience-composition/using/compositions/gs-compositions)

[Federated Audience Composition FAQ](https://experienceleague.adobe.com/en/docs/federated-audience-composition/using/start/faq)

:::hint{type="info"}
Federated Audience Composition feature is enabled at sandbox level.

Enabling this feature creates product profile, of the format **`ACP_FAC - <sandbox> - admin`**, in Adobe Experience Platform product. Users need to be added to this product profile, to be able to access feature.
:::

::::ExpandableHeading{isOpen="true"}
## Availability

Shared demo instances with Federated Audience Composition (FAC) enabled:

| **Org Name**                                 | **Sandbox Name**                | **FAC Industry**                                                         |
| -------------------------------------------- | ------------------------------- | ------------------------------------------------------------------------ |
| Adobe Demo System Shared (`demosystem4`)     | Public project - Luma           | - Luma                                                                   |
| Adobe Demo System Shared (`demosystem4`)     | Public project - SecurFinancial | - SecurFinancial                                                         |
| Adobe Demo System Shared (`demosystem4`)     | Prod                            | - CitiSignal<br />- Healthcare<br />- Custom demos<br />- HighTech (B2B) |
| Adobe Demo System Individual (`demosystem5`) | Prod                            | - CitiSignal<br />- Healthcare<br />- Custom demos                       |
| Demo EMEA (`demoemea`)                       | Luma EMEA                       | - Luma                                                                   |
| Demo EMEA (`demoemea`)                       | SecurFinancial EMEA             | - SecurFinancial                                                         |

- **Adobe Demo System Shared** (`demosystem4`)
  - Public project - Luma
    - **Available**: Database connection, Destination, Schemas, Data model, Composition
    - **Working schema**: `DEMOSYSTEM4_LUMA`
  - Public project - SecurFinancial
    - **Available**: Database connection, Destination, Schemas, Data model, Composition
    - **Working schema**: `DEMOSYSTEM4_SECURFINANCIAL`
  - Prod
    - **Available**: Database connection, Destination, Schemas, Data model, Composition
    - **Working schema**: `DEMOSYSTEM4_PROD`
- **Adobe Demo System Individual** (`demosystem5`)
  - Prod
    - **Available**: Database connection, Destination, Schemas, Data model, Composition
    - **Working schema**: `DEMOSYSTEM5_PROD`
- **Demo EMEA** ( `demoemea` )
  - Luma EMEA
    - **Available**: Database connection, Destination, Schemas, Data model
    - **Working schema**: `DEMOEMEA_LUMA`
  - Securfinancial EMEA
    - **Available**: Database connection, Schemas, Data model
    - **Working schema**: `DEMOEMEA_SECURFINANCIAL`



:::hint{type="danger"}
DO NOT MODIFY EXISTING ASSETS.
:::
::::

::::ExpandableHeading
## Accessibility

Request administrator of the instance to add users to `ACP_FAC - <sandbox> - admin` product profile / related user group.

:::hint{type="info"}
To get access to the shared instances (*Adobe Demo System Shared* / *Adobe Demo System Individual&#x20;*/ *Demo EMEA*) org, please raise request for [Demo Tool Assist here](https://salessupport.adobe.com/content/forms/af/offerings/accounts/new/demo-tool-assist.html)
:::

:::hint{type="warning"}
If you already have access to FAC in a sandbox; and you notice **`Error 403: Access not allowed`**, please try connecting through VPN
:::

![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/y3GPHctfS54SEbskGzc6U_screenshot-2024-08-19-at-80206-pm.png)

- **Models**
  - Allows you to explore Schemas and Data models (relationships)
- **Audit trail**
  - Allows you to see the change history in federated database connection management
- **Federated databases**
  - Allows you to browse through different databases available to connect/use

***

**Audience Composition**

![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/j_hyweeLSR8T1IS4OtMHY_screenshot-2024-08-19-at-81118-pm.png)

**Browse resultant audiences**

![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/AvjQjGs0T0UnbFslNeDRx_screenshot-2024-08-19-at-81220-pm.png)
::::

***

## Retail scenario

### Database connection

**Name**: Luma Datasource

**Type**: Snowflake

**Database**: CUSDEVDB1

### Entities & Relationships

**[📄 Luma - Data Model (v2.0)](https://adobe.sharepoint.com/\:x:/s/DemoSystemNext/EZIkhXHRSSxJuntApz-qi5wBfUUDb_KxXlmU37vmS8GATg?e=zQxA4G)**

![Luma (Retail) Data Model v2.0](https://api.archbee.com/api/optimize/NXbLtbNUHqcezf3QGwYNX-J3nLf-2QJomVCYICDBsOl-20241206-072318.png "Luma (Retail) Data Model v2.0")

### Compositions

:::ExpandableHeading
**[Use-case 1: Loyalist and Women Category](https://experience.adobe.com/#/@demosystem4/sname\:public-luma/platform/federated-data/xtkWorkflow/13121)**

*Customers whose category affinity is equal to women, and they are signed up for the loyalty program.*

**Create audience**:

- "Favourite Sub-Category" (CRM) contains "Women"
- "Loyalty status" (CRM) is True
- Having "Order value" > $1,500

**Highlight**: Enrichment

**Scheduled**: No

**Result audience name**: Loyalist and Women Category (v2)

**Identity**: Email

![](https://api.archbee.com/api/optimize/NXbLtbNUHqcezf3QGwYNX--ZEKpbM6X98P7MKzTGzvS-20241206-143432.png)
:::

:::ExpandableHeading
**[Use-case 2: Birthday Month offers](https://experience.adobe.com/#/@demosystem4/sname\:public-luma/platform/federated-data/xtkWorkflow/13270)**

*Create audience of customers who have a birthday this month, if they have an active order, target them for a birthday offer that references their order status. However, if they do not have an active order, just target them with a birthday offer.*

**Create audience**:

- Birthdate falls in current month
- "Loyalty status" (CRM) is True

**Highlight**: Conditional split, Enrichment

**Scheduled**: No

**Result audience name**: Birthday this month - Active orders, Birthday this month - No active orders

**Identity**: Email

![](https://api.archbee.com/api/optimize/NXbLtbNUHqcezf3QGwYNX-CwFwVYLdh-JrBLhIIydm2-20241206-143144.png)


:::

:::ExpandableHeading
**[Use-case 3: Customer Avg. Order > $1000](https://experience.adobe.com/#/@demosystem4/sname\:public-luma/platform/federated-data/xtkWorkflow/13540)**

*Prior Order History is greater or equal to $1000 and has consented to marketing communications. Additionally, with enrichment, we can also couple together this output with, “does a Wishlist exist?” for this specific user – this could warrant retargeting or offers being sent to that user when an item / product on their wish list changes price or stock levels.*

**Create audience**:

- Total order value greater than $1000
- Based on linked "Wishlist" items split into two categories of audience.

**Highlight**: Conditional split, Enrichment

**Scheduled**: No

**Result audience name**: Luma Prime Member with Wishlist, Luma Prime Member with Recommendation

**Identity**: Email

![](https://api.archbee.com/api/optimize/NXbLtbNUHqcezf3QGwYNX-S0i_QtSjcquLwEqQmEMcw-20241206-141720.png)
:::

***

## FSI Scenario

### Database connection

**Name**: SecurFinancial Datasource

**Type**: Snowflake

**Database**: CUSDEVDB2

### Entities & Relationships

**[📄 SecurFinancial - Data Model (v2.0)](https://adobe.sharepoint.com/\:x:/s/DemoSystemNext/EQ5XbtM91aRIo8ERm87-bSsBWS9xw1-OiiDt5cikK_bsaQ?e=TNoCg0)**

![SecurFinancial (FSI) Data Model v2.0](https://api.archbee.com/api/optimize/NXbLtbNUHqcezf3QGwYNX-szkRxv9eigT_eFVcvbG0j-20241206-072517.png "SecurFinancial (FSI) Data Model v2.0")

### Compositions

:::ExpandableHeading
**[Use-case 1: PREMIUM Card Upgrade Prospects](https://experience.adobe.com/#/@demosystem4/sname\:public-securfinancial/platform/federated-data/xtkWorkflow/10600)**

*Customers segment for premium card feature promotion.*

**Create audience**:

- "Consumer Credit score" (CRM) greater than 67
- "Recommendation" name contains "Premium Membership"
- "Recommendation" is valid i.e. "Valid up to" date is greater than today.

**Scheduled**: Yes, Once on weekdays

**Result audience name**: PREMIUM Card Upgrade Prospect

**Identity**: Email

![](https://api.archbee.com/api/optimize/NXbLtbNUHqcezf3QGwYNX-IkkJjf1KpO8JDJfL7LRUX-20241206-143826.png)
:::

:::ExpandableHeading
**[Use-case 2: Co-branded Credit Card Eligibe](https://experience.adobe.com/#/@demosystem4/sname\:public-securfinancial/platform/federated-data/xtkWorkflow/10390)**

*Pre- approved for a co-branded credit card using the event types of either transaction, payment, or information*

**Create audience**:

- "Recommendation" contains "Co-branded credit card"
- "Recommendation" is valid i.e. "Valid up to" date is greater than today.
- Recent transactions of type "Request Card Replacement", "Apply Credit Card" etc. has product category "Credit Cards"

**Scheduled**: Yes, Once on weekdays

**Result audience name**: Co-branded Credit Card - High Propensity, Co-branded Credit Card - Low Propensity

**Identity**: Email

![](https://api.archbee.com/api/optimize/NXbLtbNUHqcezf3QGwYNX-k3tL_Db4PyKpMKLRf5lbK-20241206-143914.png)
:::

***

## Telco scenario

### Database connection

**Name**: CitiSignal Datasource

**Type**: Snowflake

**Database**: CUSDEVDB5

### Entities & Relationships

**[📄 CitiSignal - Data Model (v2.0)](https://adobe.sharepoint.com/\:x:/s/DemoSystemNext/EebJdfVhaMBOmFY7HfZpZv0BQ0dmFZ-_qFMYhkKzyAcauw?e=yFRKSO)**

![CitiSignal (Telco) Data Model](https://api.archbee.com/api/optimize/NXbLtbNUHqcezf3QGwYNX-onSa-34NpfixE5WEMC6-x-20250127-071945.jpg "CitiSignal (Telco) Data Model")

### Compositions

:::ExpandableHeading
**[Use-case 1: CitiSignal - Cross sell (Transaction based)](https://experience.adobe.com/#/@demosystem4/sname\:prod/platform/federated-data/xtkWorkflow/13510)**

Segment customers based on purchase / transactions on their subscription plans.

**Create audience:**

- Target profiles with marketing consent.
- Enrich filtered audience with personalize attributes, such as, eligibility for fibre connection, propensity for device upgrade, number of devices owned, (aggregate) quarterly average order value etc.
- **Split the audience**:
  - High Pre-paid Transactions:
    `(`**`[Engagements/Items/Product/@PRODUCT_CATEGORY]`**`  equal to  `**`Subscription Plans`**`) AND (`**`[Engagements/Items/Product/@PRODUCT_SUB_CATEGORY]`**` included in (`**`Prepaid Plans, Data Add-ons, Entertainment Add-ons`**`)) AND (`**`[Engagements/@EVENT_DATE]`**`  greater than or equal to  `**`6 months ago`**`) AND (Sum(`**`[Engagements/@TRANSACTION_AMOUNT]`**`) greater than `**`500`**`)`
  - High Roaming Transactions:
    `(`**`[Engagements/Items/Product/@PRODUCT_CATEGORY]`**`  equal to  `**`Subscription Plans`**`) AND (`**`[Engagements/Items/Product/@PRODUCT_SUB_CATEGORY]`**`  equal to  `**`Mobile Roaming Plans`**`) AND (`**`[Engagements/@EVENT_DATE]`**`  greater than or equal to  `**`6 months ago`**`) AND (Count(`**`[Engagements/@EVENT_ID]`**`) greater than or equal to `**`3`**`)`
  - High Broadband Transactions:
    `(`**`[Engagements/Items/Product/@PRODUCT_CATEGORY]`**`  equal to  `**`Subscription Plans`**`) AND (`**`[Engagements/Items/Product/@PRODUCT_SUB_CATEGORY]`**`  like  `**`%Broadband%Plans%`**`) AND (`**`[Engagements/@EVENT_DATE]`**`  greater than or equal to  `**`6 months ago`**`) AND (Sum(`**`[Engagements/@TRANSACTION_AMOUNT]`**`) greater than `**`1500`**`)`
  - Complement:
    For rest of the target audience, check if they are eligible for fibre connection and have fibre connection related plans in last 6 months.
    Split condition:
    `(`**`[FIBRE_CONNECTION_ELIGIBLE]`**`  equal to  `**`1`**`) AND (`**`[Wishlist/Items/Product/@PRODUCT_CATEGORY]`**`  equal to  `**`Subscription Plans`**`) AND (`**`[Wishlist/Items/Product/@PRODUCT_SUB_CATEGORY]`**`  contains  `**`Fibre`**`) AND (`**`[Wishlist/@CREATED_DATE]`**`  greater than or equal to  `**`6 months ago`**`)`
- **Result audiences**: CitiSignal - Mobile Plan Upgrade Prospect (Transactions), CitiSignal - Roaming Plan Upgrade Prospect (Transactions), CitiSignal - Fibre Connection Prospect (Transactions)
- **Identity**: Email

![CitiSignal - Cross sell (Transaction based) Workflow](https://api.archbee.com/api/optimize/NXbLtbNUHqcezf3QGwYNX-PLKyy_bAEjl12gHttIzuI-20250130-143603.png "CitiSignal - Cross sell (Transaction based) Workflow")
:::

:::ExpandableHeading
**[Use-case 2: CitiSignal - Cross sell (Plan usage based)](https://experience.adobe.com/#/@demosystem4/sname\:prod/platform/federated-data/xtkWorkflow/13810)**

Segment customers based on subscribed plan usage.

**Create audience:**

- Target profiles with active Account and active Subscription.
- Enrich filtered audience with personalize attributes, such as, eligibility for fibre connection, propensity for device upgrade, number of devices owned, (*aggregate*) total number of devices associated to active accounts etc.
- **Split the audience**:
  - High Pre-paid Usage:
    `(`**`[Accounts/Subscription/Plan/@PLAN_TYPE]`**` included in (`**`Talk-Time & Data, VAS`**`)) AND (`**`[Accounts/Subscription/Plan/@PLAN_SUB_TYPE]`**` included in (`**`Mobile Bundle Plans, Mobile Talk-Time Plans, Prepaid Plans, Data Add-ons`**`)) AND ((`**`[Accounts/Subscription/Usage/@USAGE_DATE]`**`  on or after  `**`last month`**`) AND ((Sum(`**`[Accounts/Subscription/Usage/@DATA_USAGE_MB]`**`) greater than or equal to `**`10,000`**`) AND (Sum(`**`[Accounts/Subscription/Usage/@VOICE_USAGE_DURATION_SECS]`**`) greater than or equal to `**`45,000`**`)))`
  - High Roaming Usage:
    `(`**`[Accounts/Subscription/Plan/@PLAN_TYPE]`**` included in (`**`Talk-Time & Data, VAS`**`)) AND (`**`[Accounts/Subscription/Plan/@PLAN_SUB_TYPE]`**` included in (`**`Mobile Roaming Plans, Data Add-ons, Entertainment Add-ons`**`)) AND ((`**`[Accounts/Subscription/Usage/@USAGE_DATE]`**`  on or after  `**`3 months ago`**`) AND ((Sum(`**`[Accounts/Subscription/Usage/@DATA_USAGE_MB]`**`) greater than or equal to `**`15,000`**`) AND (Sum(`**`[Accounts/Subscription/Usage/@VOICE_USAGE_DURATION_SECS]`**`) greater than or equal to `**`30,000`**`)))`
  - High Broadband Usage:
    `(`**`[Accounts/Subscription/Plan/@PLAN_TYPE]`**` included in (`**`Network, Satellite services, VAS`**`)) AND (`**`[Accounts/Subscription/Plan/@PLAN_SUB_TYPE]`**` included in (`**`Broadband & Media Plans, Broadband Plans, Private LTE Network, Satellite Broadband Plans, Entertainment Add-ons, Media & Entertainment Plans`**`)) AND (`**`[Accounts/Subscription/Usage/@USAGE_DATE]`**`  on or after  `**`3 months ago`**`) AND (Sum(`**`[Accounts/Subscription/Usage/@DATA_USAGE_MB]`**`) greater than or equal to `**`10,000`**`)`
  - Complement:
    For rest of the target audience, check if they are eligible for fibre connection and have fibre connection related plans in last 6 months.
    Split condition:
    `(`**`[FIBRE_CONNECTION_ELIGIBLE]`**`  equal to  `**`1`**`) AND (`**`[Wishlist/Items/Product/@PRODUCT_CATEGORY]`**`  equal to  `**`Subscription Plans`**`) AND (`**`[Wishlist/Items/Product/@PRODUCT_SUB_CATEGORY]`**`  contains  `**`Fibre`**`) AND (`**`[Wishlist/@CREATED_DATE]`**`  greater than or equal to  `**`6 months ago`**`)`
- **Result audiences**: CitiSignal - Mobile Plan Upgrade Prospect (Usage), CitiSignal - Roaming Plan Upgrade Prospect (Usage), CitiSignal - Fibre Connection Prospect (Usage)
- **Identity**: Email

![CitiSignal - Cross sell (Plan usage based) Workflow](https://api.archbee.com/api/optimize/NXbLtbNUHqcezf3QGwYNX-90aOeUOr8cG_QSKlEviWY-20250130-140251.png "CitiSignal - Cross sell (Plan usage based) Workflow")


:::

:::ExpandableHeading
**[Use-case 3: CitiSignal - Plan subscription reminder](https://experience.adobe.com/#/@demosystem4/sname\:prod/platform/federated-data/xtkWorkflow/14140)**

Segment customers based on renewal of subscription plans & re-engage with customers using available recommendations.

**Create audience:**

- Separate branches to select target profiles based on active subscription account and inactive subscription account.
- Enrich filtered audience with personalize attributes, such as, eligibility for fibre connection, propensity for device upgrade, number of devices, (*collection*) recommendations etc. Must also include number of days due *`DaysDiff(VALID_UPTO (target/Subscription/@VALID_UPTO), GetDate())`*
- Convert the result to Profile record schema and perform deduplication based on `PROFILE_ID` / `EMAIL` / `EMAIL_SHA256`
- **Split the audience**:
  - Split the active account users by renewal due date:
    (*Assuming the NUM\_OF\_DAYS\_DUE already added in enrichment activity*)
    `(`**`NUM_OF_DAYS_DUE`**` greater than 0) AND (`**`NUM_OF_DAYS_DUE`**` less than 15)`
  - Complement:
    For rest of the target audience saved to experience platform
- In the **inactive account branch**, include **recommendation** using enrichment activity.
- **Result audiences**: CitiSignal - Upcoming bill due, CitiSignal - Bill Past Due, CitiSignal - Customer reengagement
- **Identity**: Email

![CitiSignal - Plan subscription reminder Workflow](https://api.archbee.com/api/optimize/NXbLtbNUHqcezf3QGwYNX-K0Vb4mAqHhk8QXo6XN8Qo-20250130-154845.png "CitiSignal - Plan subscription reminder Workflow")
:::

***

## Healthcare scenario

### Database connection

**Name**: Healthcare Datasource

**Type**: Snowflake

**Database**: CUSDEVDB6

### Entities & Relationships

📄 **[Healthcare - Data Model](https://adobe.sharepoint.com/\:x:/s/DemoSystemNext/EcMnC91R-hZJtnAwTQvm5lYBhBH_WDtlXfm2RPAwaRicrw?e=DCrvtK)**

![Healthcare Data Model](https://api.archbee.com/api/optimize/NXbLtbNUHqcezf3QGwYNX-RONvKxgzvO2FeJIbSicqj-20250227-143424.png "Healthcare Data Model")

### Compositions

:::ExpandableHeading
**[Use-case 1: Healthcare - Prescription reminder](https://experience.adobe.com/#/@demosystem4/sname\:prod/platform/federated-data/xtkWorkflow/16810)**

Segment customers based on prescription due in few days or past due and provided consent to share data for personalisation.

**Create audience:**

- Target profiles, who have made a purchase in last 3 months and **marketing consent to "Share" data for personalization**.
- Enrich filtered audience with personalize attributes, such as, claims in last few months, offers redeemed, translate refill reminder (simple expression), number of checkups (aggregated value).
- Deduplicate target audience by prescription refill due days (i.e. refill due recent)
- **Split the audience**:
  - Refill due:
    `REFILL_DUE_IN_DAYS` greater than `0`
  - Refill past due:
    `REFILL_DUE_IN_DAYS` less than `0`
- **Result audiences**: Healthcare - Prescription due for refill, Healthcare - Prescription past due
- **Identity**: Email

![Healthcare prescription reminder](https://api.archbee.com/api/optimize/NXbLtbNUHqcezf3QGwYNX-SnwdHwB1MhST4BZUTTDyE-20250227-173034.png "Healthcare prescription reminder")
:::

:::ExpandableHeading
**[Use-case 2: Healthcare - Scorebased segment](https://experience.adobe.com/#/@demosystem4/sname\:prod/platform/federated-data/xtkWorkflow/16600)**

Segment customers based on healthcare industry related scores and provided consent to share data for personalisation.

**Create audience:**

- Target profiles with scores related cardiac care, critical illness risk, propensity for healthcare family plans and **marketing consent to "Share" data for personalization**.
- Enrich filtered audience with personalize attributes, such as, claims in last few months, offers redeemed, number of prescriptions in last 3 months (aggregated value).
- **Split the audience**:
  - Cardiac care:
    `CARDIAC_CARE_PRODUCT_PROPENSITY` greater than or equal to `80`
  - Critical illness care:
    `CRITICAL_ILLNESS_RISK` greater than or equal to `40`
  - Family plan prospects:
    `HEALTHCARE_FAMILY_PLAN_PROPENSITY` greater than or equal to `50`
- **Result audiences**: Healthcare - Cardiac care patients, Healthcare - Critical care patients, Healthcare - Family plan prospects
- **Identity**: Email

![](https://api.archbee.com/api/optimize/NXbLtbNUHqcezf3QGwYNX-LbrSF4cJf8oX9OHmDaBva-20250227-175800.png)
:::

:::ExpandableHeading
**[Use-case 3: Healthcare - Critical Illness Care](https://experience.adobe.com/#/@demosystem4/sname\:prod/platform/federated-data/xtkWorkflow/16090)**

Segment customers based on critical illnesses and clinical services opted by targets, along with consent to share data for personalization

**Create audience:**

- Target profiles with health records in last 3 months, sponsered healthcare plan, identified with illness (*categoriesed as critical diseases*) and **marketing consent to "Share" data for personalization**.
  ( `REPORT_DATE` on or after `3 months ago` ) AND ( `CRITICAL` equal to `Yes` ) AND ( `HEALTHCARE_SPONSERED` is `true` ) AND ( `SHARE` is `true` )
- Change the resultant target dimension to match with Profile schema.
- **Split the audience**:
  - Cardiac care:
    `CARDIAC_CARE_TYPE` included in `Cardiology, Pulmonology`
  - Oncology care:
    `CARDIAC_CARE_TYPE` included in `Oncology, Emergency Medicine, Endocrinology`
  - Other critical diseases (*Type: Complement*)
- Perform data reconciliation, enrichment and deduplication activities to filter target and personalization attributes
- **Result audiences**: Healthcare - Cardiac patients prescription, Healthcare - Oncology patient care, Healthcare - Recommendation for clinical trial patients
- **Identity**: Email

![Critical care audiences](https://api.archbee.com/api/optimize/NXbLtbNUHqcezf3QGwYNX-kyW3rnn1Qcx14wdYDU8AB-20250303-054658.png "Critical care audiences")
:::

***

## HighTech (B2B) scenario

### Database connection

**Name**: HighTech (B2B) Datasource

**Type**: Snowflake

**Database**: CUSDEVDB7

📄 **[HighTech (B2B) - Data Model](https://adobe.sharepoint.com/\:x:/s/DemoSystemNext/ESf3jfocI2BKpA_TQcIU1QcBvg2L0FM0nZiNHWeKBzKxZA?e=L5BJGW)**

### Entities & Relationships

![HighTech (B2B) Entity Map](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/UNzpKEO9Ei2kZqFRi2F8F-20250917-142333.png "HighTech (B2B) Entity Map")

![HighTech (B2B) Entity Map](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/4GXwfWR44Z5vD_jKgiEUQ-20250917-142444.png "HighTech (B2B) Entity Map")

### Compositions

:::ExpandableHeading
**[Use-case  1: HighTech - Prospect Engagement](https://experience.adobe.com/#/@demosystem4/sname\:prod/platform/federated-data/xtkWorkflow/34660)**

Identify newly acquired leads or contacts who have not been effectively engaged, and retarget them with personalized campaigns to promote relevant service offerings.&#x20;

**Create audience:**

- Separate branches to select prospects:
  - **Leads**: Acquired in last 3 months with status "Open/Not contacted" and rated "Hot or Warm of NULL"
  - **Contacts**: Converted in last 3 months with status "Open or Working"
- Enrich filtered prospect with personalize attributes, such as, associated value, company, product/service category etc.
- Since, we plan to target all **Leads** and **Contacts**; so, we choose to convert Contact record to Lead type and merge data to proceed further. (*NOTE: All Contacts have associated Lead value; but, the vice-versa is not true*)
- **Split the audience**:
  - Split the prospects by "Associated Value" (*or potential revenue*)
- Process further by segmenting the prospects:
  - Entry-Level Software Prospect: Leads likely to purchase basic or initial-level software products.
  - Enterprise Software Buyers: Large-scale enterprises looking to invest significantly in software.
  - Managed Services Prospects: Prospects considering ongoing or specialized service engagements.
- **Result audiences**: HighTech - Entry-Level Software Prospects, HighTech - Enterprise Software Buyers, HighTech - Managed Services Prospects
- **Identity**: Email
-

  ![HighTech - Prospect Engagement](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/4E4dZgpDK49fpvEVAPnQ9-20250917-170245.png "HighTech - Prospect Engagement")
:::

***

## Destination

While activating audience and enriched attributes, you could leverage existing "**Federated Audience Composition**" (Type: Adobe Applications) destination for *Demo System Next*, which is a **Snowflake** database; or, you may choose to create a new destination.



::Image[]{src="https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/Z2THjxuqOROdP4ZIbQwyc_image.png" size="50" width="574" height="346" position="flex-start" caption="Use the new FAC destination icon, with Adobe logo." alt="Use the new FAC destination icon, with Adobe logo." showCaption="true"}

:::::ExpandableHeading
## ✳️ Best Practices

::::hint{type="info"}
Learn how to create tables and populate data in Snowflake to demonstrate Federated Audience Composition.

:::CtaButton{label="DSN - FAC Wiki" externalHref="https://wiki.corp.adobe.com/pages/viewpage.action?pageId=3240017042" openInNewTab="true"}

:::
::::



:::hint{type="info"}
While creating federated database connection in Experience Platform, it is a good practice to refer "**Working schema**" property (*Working schema is the schema in the federated database, with required privilege for the connection user to create/manage tables*).&#x20;

By specifying a "**Working schema**" property for the federated database connection in Experience Platform, you're ensuring a cleaner and more organized database structure. This allows:

1. **Separation of Concerns**: Activation data tables will be created in a dedicated schema, keeping them separate from the original read schema.
2. **Cleaner Table Names**: The read schema will not get cluttered with the alphanumeric table names generated by the activation service, which helps maintain clarity and ease of navigation.
3. **Controlled Privileges**: The working schema will have the required privileges for the connection user to create and manage tables, ensuring proper security and access control.

This approach enhances the maintainability and readability of your database, which can be especially important in re-usable environments.&#x20;
:::

:::hint{type="warning"}
Do not refer the same audience label \ name in "**Save segment**" activity, in multiple composition workflows.

Reusing the same audience label or name in the "**Save segment**" activity across multiple composition workflows can lead to conflict / error and data integrity issues. To maintain clarity and avoid any potential conflicts, it's crucial to use unique labels or names for each segment within different workflows. This ensures that each segment is distinctly identifiable and correctly associated with its respective workflow.
:::

:::hint{type="warning"}
Once a "**Save segment**" activity is executed and the corresponding audience is created, it's essential not to add new attributes (audience mapping properties) or change the data types of existing attributes. This is particularly important because:

- **Consistency**: Changing data types or adding new attributes can lead to inconsistencies in the data, making it challenging to maintain and interpret.
- **Data Integrity**: Ensuring the data remains unchanged preserves the integrity of the audience segment, preventing potential errors or mismatches in subsequent workflows.
- **Stability**: Keeping the structure of the audience data stable avoids disruptions in any downstream processes or integrations that rely on the original schema.

**Compatibility**: Expressions and data transformations often depend on the original data types. Altering these can result in invalid expressions or incompatible data formats.&#x20;

(*Data type change usually occur in case of expressions*.)
:::

:::hint{type="success"}
When activating an audience using the federated destination category, tables with alphanumeric names are created. To easily identify the target table for a specific segment in the federated destination, it is recommended to include the segment name or a unique label during the data activation process.

Incorporate segment name / unique label (e.g. *static string expression like `"Prime membership prospect"`*) in "**Save audience**" activity (*Audience mapping*) within composition workflow.&#x20;

Ensure the segment name or unique label is included as an attribute during the "Save audience" activity. This facilitates clear identification and association of the segment.

::Image[]{src="https://api.archbee.com/api/optimize/NXbLtbNUHqcezf3QGwYNX-fwwJyP__VpP4lLipMxYlC-20250214-153843.png" size="40" width="642" height="994" position="center" caption="Audience mapping in &#x22;Save audience&#x22; activity" alt="Audience mapping in &#x22;Save audience&#x22; activity" showCaption="true"}

If the segment name or unique label is captured as an audience attribute from the composition workflow, it can be added as a "**Calculated** (mapping) **field**" during the activation step. This attribute should be included to maintain clarity and ease of identification in the federated destination.



::Image[]{src="https://api.archbee.com/api/optimize/NXbLtbNUHqcezf3QGwYNX-wbqtXBfV69c2TdWXvPd0n-20250214-154811.png" size="74" width="1288" height="634" position="center" caption="Include unique label at activation" alt="Include unique label at activation" showCaption="true"}
:::


:::::

