Ortto (formerly Autopilot) Beta
4 minute read
Ortto (formerly Autopilot) is a popular marketing automation platform that allows you to track and capture new leads, create detailed customer journeys, and boost customer retention.
Find the open source transformer code for this destination in the GitHub repository.
Setup
- In your RudderStack dashboard, go to Directory > Destinations > Cloud Destinations and search for Ortto.
- Connect your source and click Continue.
Connection settings
Configure the following settings to set up Ortto as a destination in RudderStack:
- Name: Assign a name to uniquely identify the destination.
- Private API Key: Enter your private API key from the Ortto data source. For more information on generating this key, see Ortto’s documentation.
- Instance Region: Specify your Ortto account’s instance region from Australia, Europe, or Other.
Connection mode
| Destination Information | |||
|---|---|---|---|
| |||
Configuration settings
After completing the initial setup, configure the following settings to correctly receive your data in Ortto:
- Consent management settings: Configure the consent management settings for the specified source by choosing the Consent management provider from the dropdown and entering the relevant consent category IDs. See Consent Management in RudderStack for more information on this feature.
Event and property mapping
Click the Set up mapping button to map your RudderStack events and properties to specific Ortto custom events/properties. You can also use the JSON mapper to set these mappings.
RudderStack provides the following options:
- Event and property mappings: Map a RudderStack event or property to an Ortto event/property. In the property mappings, you can also specify the Ortto Property Type.

- Custom user traits mappings: Use this setting to map the user traits in your
identifyevents to your Ortto Person attributes.

Identify
You can use the identify call to create or update an user in Ortto. RudderStack sends this data to Ortto by leveraging their merge endpoint.
A sample identify event is shown:
rudderanalytics.identify("1hKOmRA4GRlm", {
"firstName": "Alex",
"lastName": "Keener",
"email": "alex@example.com",
"phone": "+1-202-555-0146",
"emailConsent": true,
"smsConsent": false,
"gdpr": false,
"address": {
"city": "New Orleans",
"country": "USA",
"zipcode": 900001
}
});Note that:
userIdoranonymousIdare required fields in youridentifycalls for RudderStack to send data to Ortto successfully.- RudderStack uses
userId/anonymousIdto look up the user and update their profile in Ortto. If these fields are absent, it usesemailinstead. - Use the
emailConsent,smsConsent, andgdprfields to set consent for email subscription, SMS subscription, and GDPR, respectively.
Track
You can use the track to record user activities in Ortto. RudderStack sends this data to Ortto by leveraging their activities API. The event mapping is shown below:
| RudderStack event | Ortto event |
|---|---|
eventRequired | activities[i].activity_id |
A sample track payload is as shown in the snippet below:
rudderanalytics.track("Product Clicked", {
description: "Adidas Sneakers",
brand: "Adidas",
colors: "red",
productName: "Shoes"
}, {
context: {
traits: {
emailConsent: false,
smsConsent: true,
gdpr: true
}
}
});As seen in the above snippet, you can use the emailConsent, smsConsent, and gdpr fields within the context.traits object to set consent for email subscription, SMS subscription, and GDPR, respectively.
Make sure the events you want to send to Ortto are specified and mapped to the Ortto events in the Event and property mappings dashboard setting. Otherwise, RudderStack will drop them.
Supported mappings
RudderStack maps the following identify/track event properties to the corresponding Ortto properties:
| RudderStack property | Ortto property |
|---|---|
userIdanonymousIdRequired | str::ei |
context.traits.firstName | people[i].fields.str::first |
context.traits.lastName | people[i].fields.str::last |
context.traits.email | people[i].fields.str::email |
context.traits.address.city | people[i].fields.geo::city.name |
context.traits.address.country | people[i].fields.geo::country.name |
context.traits.address.region | people[i].fields.geo::region.name |
context.traits.address.zipcode | people[i].fields.str::postal |
context.traits.birthday
| people[i].fields.dtz::b |
context.traits.languagecontext.locale | str::language |
context.traits.phone | phn::phone.n |
userIdanonymousId | str::ei |
You can send up to 100 fields in a single request.