# Richpanel Destination

## Destination Info

* Accepts [Page](/docs/segment/connections/spec/page), [Identify](/docs/segment/connections/spec/identify), [Track](/docs/segment/connections/spec/track) calls.
* Refer to it as **Richpanel** 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.

### Components

* [Server](/docs/segment/connections/destinations/catalog/richpanel/)

## Connection Modes

[Learn more about connection modes.](/docs/segment/connections/destinations/#connection-modes)

### Device-Mode

* web: no
* mobile: no
* server: no

### Cloud-Mode

* web: yes
* mobile: yes
* server: yes

[Richpanel](https://richpanel.com/?utm_source=segmentio\&utm_medium=docs\&utm_campaign=partners) is the helpdesk software built for Ecommerce teams to support customers at scale in a fun, easy, collaborative way.

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

## Getting Started

1. From the Segment web app, click **Catalog**.
2. Search for "Richpanel" in the Catalog, select it, and choose which of your sources to connect the destination to.
3. If this is the first time setting up Richpanel as a destination, you'll need to install the Segment App in your Richpanel Account.
4. In your Richpanel account, go to Data Sources > Integrations and install the Segment Connector.
5. Enter the "API Key" into your Segment Settings UI which you can find from your [Richpanel data sources](https://app.richpanel.com/connectors/my/list).

**NOTE**: Richpanel accepts anonymous users, or Visitors, but they will not appear in the Richpanel Customer Section UI unless the customer is first identified using an `identify` call or customer activity through Richpanel Channels, thereby becoming a Customer.

## Identify

If you're not familiar with the Segment Specs, take a look to understand what the [`identify` method](/docs/segment/connections/spec/identify/) does. An example call would look like:

```js
analytics.identify('userId123', {
  email: 'john.doe@segment.com',
  richpanel_session_id: 'abc123'
});
```

`identify` calls sent to Richpanel create or update a standard customer object record. If a record with a corresponding `userId` exists, that record is updated. If no customer record exists, a new customer record is created.

The basic properties to identify and create a user are:

* `uid` : Unique User Id (required)
* `email` : User's email
* `firstName` : User's First Name
* `lastName` : User's Last Name
* `phone` : User's Phone

`uid` is a *required* field; `email`, `firstName`, and `lastName` are optional, but highly recommended.

## Page

If you're not familiar with the Segment Specs, take a look to understand what the [`page` method](/docs/segment/connections/spec/page/) does. An example call would look like:

```js
analytics.page('Pricing', {
  title: 'Segment Pricing',
  url: 'https://segment.com/pricing',
  richpanel_session_id: 'abc123'
});
```

Page calls are sent as a tracking event to Richpanel on the timeline of the customer who was tracked. If the `richpanel_session_id` is included, it clusters this tracking event into a single "session" on the customer's timeline.

If no `richpanel_session_id` is supplied, Richpanel will automatically generate sessionIDs based on time between tracking events. (Read why [Segment doesn't have session tracking](https://www.twilio.com/en-us/blog/developers/best-practices/facts-vs-stories-why-segment-has-no-sessions-api) for more details). `page` calls can only update `email` traits, not create them.

## Track

If you're not familiar with the Segment Specs, take a look to understand what the [`track` method](/docs/segment/connections/spec/track/) does. An example call would look like:

```js
analytics.track('Clicked Login Button', {
    richpanel_session_id: 'abc123'
})
```

Track calls are sent to Richpanel as a `track` event. `track` calls can only update `email` traits, but do not create them.

**NOTE**: Richpanel accepts all events listed in [Segment's Specs](/docs/segment/connections/spec/ecommerce/v2/). For events like Order Updated, Order Cancelled, and Order Refunded, we recommend that you pass an `order_status` property.

## 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 Richpanel  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    | Find the API Key in Data Source section of Richpanel    | Yes      | string |
| API Secret | Find the API Secret in Data Source section of Richpanel | No       | string |
