# Nudge (Actions) Destination

> \[!IMPORTANT]
>
> This feature is in active development and may change before general availability.

## 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 **Nudge (Actions)** 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.**

[Nudge](https://nudgenow.com/?utm_source=segmentio\&utm_medium=docs\&utm_campaign=partners) is an AI personalization platform for marketing teams for enabling rapid personalization experimentation and for autonomously delivering 1:1 user experiences.

This destination is maintained by the Nudge Developer Team. For any issues with the destination, [contact the Support team](mailto:support@nudgenow.com).

## Getting started

1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog) search for **Nudge**.
2. Select **Nudge** and click **Add Destination**.
3. Select an existing Source to connect to Nudge (Actions).
4. Go to the [Nudge dashboard](https://dashboard.nudgenow.com), and navigate to the **Settings** page.
5. Go to the **Secret Keys** section and click **Create new secret key**.
6. Give an appropriate name for the key, then select the **Backend API** option from the permissions dropdown and create the key.
7. Copy the generated key and store it somewhere safe for future reference.
8. Paste the generated API key in the **Nudge** destination settings in Segment.

## Supported methods

The Nudge (Actions) Destination currently supports the Identify and Track methods listed below in accordance to the core Segment Specs. Reference: [Spec Overview](/docs/segment/connections/spec/)

### Identify

The Identify method lets you create or update a user in Nudge's backend. Every Identify call should include a `userId`. See Segment's Spec for Identify for any reference: [Identify Spec](/docs/segment/connections/spec/identify/)

Example (using Segment's Analytics.js SDK):

```js
analytics.identify('user123', {
  name: 'Alice Smith',
  email: 'alice.smith@example.com',
  company: 'Acme Corp',
  employees: 150
});
```

How Nudge handles Identify calls:

* If `userId` doesn't exist, the request throws a 400 validation error as it's a required field.
* If `userId` already exists, Nudge merges or overwrites profile properties with the latest values.
* Identify calls without `userId`, or with only `anonymousId`, are dropped.

### Track

The Track method sends custom events and their properties into Nudge. You must include `event` name in every Track call so events can be associated with the correct user. See Segment's Spec for Track for any reference: [Track Spec](/docs/segment/connections/spec/track/)

Example (using Segment's Analytics.js SDK):

```js
analytics.track('Product Viewed', {
  product_id: 784,
  product_sku: 'SH#79817'
});
```

How Nudge handles Track calls:

* Segment ensures the `userId` is attached to the Track call for a previously successful Identify.
* Events without a valid `userId` or with only `anonymousId` are dropped.
* All other event properties are ingested as event metadata and can be used for trigger conditions.

## Destination Settings

| Field   | Description             | Required | Type     |
| ------- | ----------------------- | -------- | -------- |
| API Key | Private Backend API Key | Yes      | password |

## Available Actions

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

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

* [Identify User](#identify-user-11)
* [Track Event](#track-event-16)

### Identify User

Identify a user in Nudge

Identify User is a **Cloud** action. The default Trigger is `type = "identify"`

| Field        | Description                               | Required | Type   |
| ------------ | ----------------------------------------- | -------- | ------ |
| User ID      | The ID of the user performing the action. | Yes      | STRING |
| User Name    | The name of the user                      | No       | STRING |
| Phone Number | The phone number of the user              | No       | STRING |
| Email        | The email of the user.                    | No       | STRING |
| Timezone     | The timezone of the user.                 | No       | STRING |
| Properties   | Properties for the user                   | No       | OBJECT |

### Track Event

Send an event to Nudge

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

| Field            | Description                                        | Required | Type     |
| ---------------- | -------------------------------------------------- | -------- | -------- |
| Event Name       | The name of the action being performed.            | Yes      | STRING   |
| User ID          | The ID of the user performing the action.          | Yes      | STRING   |
| Event Timestamp  | The time at which the event occurred               | Yes      | DATETIME |
| Properties       | Properties of the event                            | No       | OBJECT   |
| Enable Batching? | When enabled, Segment will send events in batches. | No       | BOOLEAN  |

## Troubleshooting

### Events aren't showing up in Nudge

Events may not show up in Nudge due to one of these reasons:

* **Missing or invalid API key**: Ensure that the API key you generated under **Settings → Secret Keys → Backend API** is correctly entered in your Segment destination settings.
* **Dropped Identify/Track calls**: API requests to Nudge's servers without `userId`, or with only `anonymousId`, are automatically dropped. Verify your mapping includes the correct identifier field.

### Timestamp or date format errors

Nudge expects all date/time properties in UTC ISO-8601 format (Javascript Date object's ISO format). If you see failed events due to timestamp validation:

* Confirm you're sending dates like `"2025-05-14T07:30:00Z"`.
* Remove any timezone offsets other than `Z` (UTC).

### Validation failures

If requests continue to fail after checking your API key and payload:

* Compare against Nudge's specification from the documentation: [Nudge's Documentation](https://docs.nudgenow.com/).
* Ensure all required fields (for example, `userId`, `event` name for Track) are present and correctly typed.

*If you still encounter issues, please reach out to the Nudge Developer Team or email [support@nudgenow.com](mailto:support@nudgenow.com).*

## 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 Nudge (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     |
| ------- | ----------------------- | -------- | -------- |
| API Key | Private Backend API Key | Yes      | password |
