# Survicate


{{< info >}}
This destination is maintained by Survicate. For any issues, contact [integrations@survicate.com](mailto:integrations@survicate.com).
{{< /info >}}

[Survicate](https://survicate.com/?utm_source=rudderstack&utm_medium=integrations&utm_campaign=docs) is a customer feedback platform that helps businesses collect, analyze, and act on customer insights across every channel.

With this integration, you can send user attributes, company attributes, and events from RudderStack to Survicate, and use them to target surveys at the right audience and filter survey results.

Find the open source transformer code for this destination in the [GitHub repository](https://github.com/rudderlabs/rudder-transformer/tree/main/src/v0/destinations/survicate).

## Connection compatibility

{{< destination-config >}}

## Setup

In your [RudderStack dashboard](https://app.rudderstack.com/), add a source. Then, from the list of destinations, select **Survicate**.

### Connection settings

| Setting | <div style="width: 350px;">Description</div> |
| :----| :-----|
| Destination Key | Enter your Survicate destination key. <br /><br />In the Survicate panel, go to **Integrations** > **RudderStack**, click **Connect** in the upper right corner. Then, copy the destination key from the **Connect** tab. |

## Identify

Use the [`identify`]({{< ref "event-spec/standard-events/identify.md" >}}) call to send user traits to Survicate. Survicate stores them as respondent attributes, which you can use to target surveys at specific users and filter survey results.

Note that:

- All traits passed in `identify` calls are available in Survicate once you view a respondent profile or export survey data.
- All `camelCase` attribute keys are translated to `snake_case`.
- All object attributes are flattened to attributes prefixed by the object key. 
- All array attributes are omitted.

#### Example

```javascript
rudderanalytics.identify("1hKOmRA4GRlm", {
  address: {
    street: "6th St",
    city: "San Francisco",
    state: "CA",
    postalCode: "94103",
    country: "USA",
  },
  categories: ["startup", "SaaS"],
});
```

The above call creates the following respondent traits in Survicate:

| Key | Value     |
| :------------------ | :------------ |
| `id` | 1hKOmRA4GRlm |
| `address_street`      | 6th St |
| `address_city`        | San Francisco |
| `address_state`       | CA |
| `address_postal_code` | 94103 |
| `address_country`     | USA |

The `categories` trait is omitted as it is an array attribute.

## Group

Use the [`group`]({{< ref "event-spec/standard-events/group.md" >}}) call to to send company traits to Survicate.

Note that:

- All `group` traits are passed to respondent attributes with the `group_` prefix. 
- All `camelCase` attribute keys are translated to `snake_case`. 
- All object attributes are flattened to attributes prefixed by the object key. 
- All array attributes are omitted.

#### Example

```javascript
rudderanalytics.group("group123", {
  name: "Company Inc.",
  address: {
    street: "6th St",
    city: "San Francisco",
    state: "CA",
    postalCode: "94103",
    country: "USA",
  },
  categories: ["startup", "SaaS"],
});
```

The above call creates the following respondent traits in Survicate:

| Key | Value     |
| :------- | :------------ |
| `group_id` | group123 |
| `group_name` |   Company Inc.  |
| `group_address_street` |  6th St |
| `group_address_city` |   San Francisco |
| `group_address_state` |   CA |
| `group_address_postal_code` |   94103         |
| `group_address_country` |   USA |

The `categories` attribute is omitted as it is an array attribute.

## Track

Use the [`track`]({{< ref "event-spec/standard-events/track.md" >}}) call to send events to Survicate. 

You can use the event names to trigger Survicate surveys. In the Survicate panel, go to the survey's **Target** tab > **Audience** and add the event to the active audience targeting conditions.

A sample `track` call is shown below:

```javascript
rudderanalytics.track("plan_purchased", {
  plan: "Pro Annual",
});
```

Note that:

- Survicate uses only the event name for survey targeting — event properties are not available for targeting.
- In case of key conflicts, `traits` or `context.traits` take precedence over `properties`

## FAQ

#### Where can I find the Survicate API Key?

1. In the Survicate panel, go to **Integrations** > **RudderStack**.
2. Click **Connect** in the upper right corner. 
3. Copy the destination key from the **Connect** tab.

#### Can I send survey responses back to RudderStack?

No — this integration only receives data from RudderStack. Survey responses are not sent back to RudderStack.

<br />
