# Pushwoosh (Actions) Destination

## Destination Info

* Accepts [Page](/docs/segment/connections/spec/page), [Alias](/docs/segment/connections/spec/alias), [Group](/docs/segment/connections/spec/group), [Identify](/docs/segment/connections/spec/identify), [Track](/docs/segment/connections/spec/track) calls.
* Refer to it as **Pushwoosh** in the [Integrations object.](/docs/segment/guides/filtering-data/#filtering-with-the-integrations-object)
* This integration is **partner owned.** Please reach out to the partner's support for any issues.
* This destination is **Beta.**

[Pushwoosh](https://pushwoosh.com/?utm_source=segmentio\&utm_medium=docs\&utm_campaign=partners) is a customer engagement platform that lets you create personalized messaging campaigns combining multiple channels, like push notifications, in-app messages, emails, and SMS.

Pushwoosh maintains this destination. For any issues with the destination, [contact the Pushwoosh support team](mailto:help@pushwoosh.com).

## Getting started

### Pushwoosh SDK integration

* If you configured Segment to receive push tokens, you don't need to integrate the Pushwoosh SDK into your app.
* If your Segment implementation doesn't receive push tokens, integrate the Pushwoosh SDK into your app before setting up the Pushwoosh integration.

### Segment configuration

1. From the Segment web app, navigate to **Connections > Destinations**, and click **Add Destination**.
2. Search for **Pushwoosh** and select it as the destination.
3. Choose the sources you want to connect the Pushwoosh destination to.
4. Open the destination settings.
5. Enter your [**Pushwoosh API key**](https://docs.pushwoosh.com/platform-docs/api-reference/api-access-token/) and **application code**, which you can find below the project name in Pushwoosh. Verify that the **Enable Destination** switch is toggled on, then click **Save Changes**.
6. Go to the **Mappings** tab and verify that the **Create or Update User Profile** and **Track Events options** are enabled.

Once you've configured the integration, Pushwoosh will receive events and user attributes from Segment.

## Destination Settings

| Field                      | Description                                             | Required | Type     |
| -------------------------- | ------------------------------------------------------- | -------- | -------- |
| Pushwoosh API Key          | Pushwoosh API Key from Pushwoosh Control Panel          | Yes      | password |
| Pushwoosh Application Code | Pushwoosh Application Code from Pushwoosh Control Panel | Yes      | string   |

## Available Presets

Pushwoosh has the following presets

| Preset Name                   | Trigger                                                            | Default Action                 |
| ----------------------------- | ------------------------------------------------------------------ | ------------------------------ |
| Track Events                  | Event type = "track", Event  type = "page", Event  type = "screen" | Track Event                    |
| Create or Update User Profile | Event type = "identify"                                            | Create or Update User Profiles |

## Available Actions

Build your own Mappings. Combine supported [triggers](/docs/segment/connections/destinations/actions/#components-of-a-destination-action) with the following Pushwoosh-supported actions:

> \[!NOTE]
>
> Individual destination instances have support a maximum of 50 mappings.

* [Create or Update User Profiles](#create-or-update-user-profiles)
* [Track Event](#track-event-13)

### Create or Update User Profiles

Create or Update a user's profile attributes in Pushwoosh.

Create or Update User Profiles is a **Cloud** action. The default Trigger is `type = "identify"`

| Field             | Description                                                                                                         | Required | Type   |
| ----------------- | ------------------------------------------------------------------------------------------------------------------- | -------- | ------ |
| External User ID  | The unique user identifier                                                                                          | No       | STRING |
| Email             | The user's email                                                                                                    | No       | STRING |
| App Version       | Version of the app                                                                                                  | No       | STRING |
| Device ID         | Device ID                                                                                                           | No       | STRING |
| Device Model      | Device Model                                                                                                        | No       | STRING |
| Device Platform   | Device Platform                                                                                                     | No       | STRING |
| Device Token      | Device Token. This is not automatically collected by Segment Mobile SDKs. Add it into the Segment payload if needed | No       | STRING |
| Language          | Language                                                                                                            | No       | STRING |
| Country           | The country code of the user                                                                                        | No       | STRING |
| City              | The city of the user                                                                                                | No       | STRING |
| Current Location  | The user's current longitude/latitude.                                                                              | No       | OBJECT |
| Device OS Version | The version of the device OS                                                                                        | No       | STRING |
| Timezone          | The timezone of the user                                                                                            | No       | STRING |
| User Agent        | User agent of the device                                                                                            | No       | STRING |
| Custom Attributes | Custom attributes to send to Pushwoosh                                                                              | No       | OBJECT |

### Track Event

Record custom events in Pushwoosh

Track Event is a **Cloud** action. The default Trigger is `type = "track" or type = "page" or type = "screen"`

| Field                   | Description                                                                                 | Required | Type     |
| ----------------------- | ------------------------------------------------------------------------------------------- | -------- | -------- |
| External User ID        | The unique user identifier                                                                  | Yes      | STRING   |
| Device ID               | Device ID                                                                                   | No       | STRING   |
| Device Platform         | Device Platform                                                                             | No       | STRING   |
| Name                    | Event Name                                                                                  | Yes      | STRING   |
| Timestamp               | When the event occurred.                                                                    | Yes      | DATETIME |
| Event Properties        | Properties of the event                                                                     | No       | OBJECT   |
| Batch Data to Pushwoosh | If true, Segment will batch events before sending to Pushwoosh. 100 events per request max. | No       | BOOLEAN  |

## Engage

You can send computed traits and audiences generated using [Engage](/docs/segment/engage) to this destination as a **user property**. To learn more about Engage, schedule a [demo](https://segment.com/contact/demo).

For user-property destinations, an [identify](/docs/segment/connections/spec/identify/) call is sent to the destination for each user being added and removed. The property name is the snake\_cased version of the audience name, with a true/false value to indicate membership. For example, when a user first completes an order in the last 30 days, Engage sends an Identify call with the property `order_completed_last_30days: true`. When the user no longer satisfies this condition (for example, it's been more than 30 days since their last order), Engage sets that value to `false`.

When you first create an audience, Engage sends an Identify call for every user in that audience. Later audience syncs only send updates for users whose membership has changed since the last sync.

> \[!NOTE]
>
> Real-time audience syncs to Pushwoosh (Actions)  may take six or more hours for the initial sync to complete. Upon completion, a sync frequency of two to three hours is expected.

## Settings

Segment lets you change these destination settings from the Segment app without having to touch any code.

| Field                      | Description                                             | Required | Type     |
| -------------------------- | ------------------------------------------------------- | -------- | -------- |
| Pushwoosh API Key          | Pushwoosh API Key from Pushwoosh Control Panel          | Yes      | password |
| Pushwoosh Application Code | Pushwoosh Application Code from Pushwoosh Control Panel | Yes      | string   |
