# Destinations

Destinations keep your other tools in your stack in‑sync by forwarding events and profile updates from UserFlux in real‑time—no custom point‑to‑point integrations required.

### Typical use-cases

| Category      | Example tools      | Why sync?                                                                                      |
| ------------- | ------------------ | ---------------------------------------------------------------------------------------------- |
| Messaging     | Postmark, SendGrid | Ensure user traits (name, locale, email verified, etc.) are always up‑to‑date before you send. |
| Chat / Alerts | Slack, MS Teams    | Stream key events to internal channels for instant visibility.                                 |
| Custom        | Any HTTP endpoint  | Update your own micro‑services via webhooks or REST.                                           |

***

## 1. Destinations Home

| UI Part                  | What it shows / does                                                                                                     |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
| Destination List (left)  | Each connected tool with its icon, status toggle (Running / Paused) and data scope (All data, Profile data, Event data). |
| Create a new destination | Opens a catalogue—pick a pre‑built connector or “Generic Webhook.”                                                       |
| Mappings Panel (right)   | For the selected destination, configure one or more Mappings (rules + Liquid template).                                  |
| Save Changes / Draft ▾   | Save as draft or Publish to start realtime delivery. Drafts let you stage edits safely.                                  |

***

## 2. Mappings

A Mapping defines what to forward and how to format the outbound payload.

### **2.1 Choose Data Source**

1. Events or Profile Changes.
2. Specify scope:
   * *Send All* | *Send Specific* | *Send All Except* (multi‑select event names).
   * Apply user filters (all users / only specific segments / anonymous only, etc.).

### **2.2 Customise Mapping**

*JSON, form‑data or query‑string* builder with full Liquid syntax:

```json
{
  "channel": "channel-id",
  "text": "👋 New {{event.name}}  \nEmail: {{user.properties.email | default: 'Unknown' }} \nUserId: {{event.userId}}"
}
```

#### Available objects

| Object | Common fields                                             |
| ------ | --------------------------------------------------------- |
| event  | name, timestamp, properties.\*, userId, anonymousId       |
| user   | id, email, properties.\*, computedProperties.\*, segments |

### **2.3 Profile Sync**

Mappings of Profile Changes fire whenever a profile is created or updated. Build the JSON body once and all downstream tools stay in step:

```json
{
  "profile": {
    "name": "{{user.properties.fullName}}",
    "email": "{{user.properties.email}}",
    "email_verified": "{{user.properties.emailVerified}}",
    "locale": "{{user.properties.locale}}"
  }
}
```

***

## 3. Real‑Time Delivery & Reliability

* Events and profile updates are posted within seconds of hitting UserFlux.
* Toggle the destination off to pause traffic without losing queued data—re‑enable to resume.
* Inspect delivery logs in the Automation Logs page

***

## 4. Examples

| Goal                                             | How to set it up                                                                                                                       |
| ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------- |
| Log every page\_view to #product‑events in Slack | *Data source*: Events → Send Specific Events page\_view → Send For All Users → Liquid payload shown above.                             |
| Sync verified user traits to Email provider      | *Data source*: Profile Changes → Mapping payload with name / email / locale.                                                           |
| Forward ‘Order Placed’ to internal webhook       | Destination type: Generic Webhook → URL <https://api.internal/order> → Event filter order\_completed → JSON body with order properties |
