User.com is a popular marketing automation platform. It provides robust tools for the marketing, sales, management, and support teams to boost their brand value, enhance customer engagement, and increase conversions.
RudderStack supports User.com as a destination where you can seamlessly send your event data.
Getting started
Before configuring User.com as a destination in RudderStack, verify if the source platform is supported by User.com by referring to the table below:
| Connection Mode | Web | Mobile | Server | 
|---|---|---|---|
| Device mode | - | - | - | 
| Cloud mode | Supported | Supported | Supported | 
Once you have confirmed that the source platform supports sending events to User.com, follow these steps:
- From your RudderStack dashboard, add a source. Then, from the list of destinations, select User.com.
 - Assign a name to the destination and click Continue.
 
Connection settings
To successfully configure User.com as a destination, you will need to configure the following settings:
    
      
  
    
      
  
    - Public REST API Key: Enter your public User.com REST API key.
 - App Subdomain: Enter the subdomain of your User.com app.
 
- Map Rudder user attributes to User.com attributes: With this setting, you can map the RudderStack user attributes to specific User.com user attributes.
 - Map RudderStack event name to User.com event name: Use this setting to map the RudderStack event names to specific User.com events. You can map one or more RudderStack events to a single User.com event but not vice-versa.
 - Map your event property: Enter the RudderStack and User.com event properties you want to map for the above-mentioned event names. You can map a RudderStack property only to one User.com property and vice-versa.
 - Map Rudder company attributes to User.com company attributes: Use this setting to map the RudderStack company attributes to specific User.com company attributes.
 
User lookup
identify, track, and page calls.RudderStack looks up a user in User.com using the user_key, email, or phone properties.
- You can pass the 
user_keyin theexternalIdarray, as shown: 
"externalId": [{  "type": "userKey",  "id": "uehfuuiuednjk"}],- You can pass the 
emailorphonein theintegrationsobject, as shown: 
integrations: {user: {  lookup: "email/phone"}});email or phone in lookup. Also, email or phone (whichever is passed) must have unique values in User.com.The precedence order for looking up a user based on the above properties is:
- The 
userKeyis given the highest priority. - The 
lookupvalue is given the second highest priority. Ifphone/email(whichever is passed) is not found, RudderStack will throw an error. - If none of the above is present, RudderStack falls back to the 
userId. If not found, RudderStack will throw an error. 
Identify
You can use the identify call to create a new user in User.com. If the user already exists, RudderStack updates the user details.
A sample identify call is shown below:
rudderanalytics.identify('1hKOmRA4el9Zt1WSfVJIVo4GRlm', {      firstName: 'Alex',      lastName: 'Keener',      email: "alex@example.com"    }, {      externalId: [{        type: "userKey",        id: "Df344sdFgdDsS4"      }],      integrations: {        user: {          lookup: "email"        }      }    );Property mapping
The following table lists the mappings between RudderStack and User.com properties for identify call:
| RudderStack property | User.com property | Presence | 
|---|---|---|
userId/traits.userId/traits.id/context.traits.userId/context.traits.id/anonymousId | custom_id | Required | 
traits.firstName/traits.firstname/traits.first_name/context.traits.firstName/context.traits.firstname/context.traits.first_name | first_name | Optional | 
traits.lastName/traits.lastname/traits.last_name/`context.traits.lastName/context.traits.lastname/context.traits.last_name | last_name | Optional | 
traits.email/context.traits.email/properties.email/context.externalId.0.id | email | Optional | 
traits.phone/context.traits.phone/properties.phone | phone_number | Optional | 
traits.tags/context.traits.tags | tags | Optional | 
traits.address.city/context.traits.address.city | city | Optional | 
traits.region/context.traits.region | region | Optional | 
traits.country/context.traits.country | country | Optional | 
traits.gender/context.traits.gender | gender | Optional | 
traits.status/context.traits.status | status | Optional | 
traits.googleUrl/context.traits.googleUrl | google_url | Optional | 
traits.linkedinUrl/context.traits.linkedinUrl | linkedin_url | Optional | 
traits.twitterUrl/context.traits.twitterUrl | twitter_url | Optional | 
traits.facebookUrl/context.traits.facebookUrl | facebook_url | Optional | 
traits.avatar/context.traits.avatar/traits.avatarURL/context.traits.avatarURL/traits.avatar_URL/context.traits.avatar_URL | gravatar_url | Optional | 
traits.timezone/context.traits.timezone | timezone | Optional | 
Track
You can use the track call to record a new event which, in turn, can be used to filter and bucket users in User.com.
A sample track call is shown below:
rudderanalytics.track('Add to cart', {  purchased_item: "T-Shirt",  brand: "Zara",  email: "alex@example.com"}, {  integrations: {    user: {      lookup: "email"    }  }););Property mapping
The following table lists the mappings between RudderStack and User.com properties for the track call:
| RudderStack property | User.com property | Presence | 
|---|---|---|
userId/traits.userId/traits.id/context.traits.userId/context.traits.id | user_id | Required | 
event | name | Required | 
properties | data | Optional | 
originalTimestamp/timestamp | timestamp | Optional | 
Page
The page call lets you record your website's page views with any additional relevant information about the viewed page.
A sample page call is shown below:
rudderanalytics.page("section-name", {      path: "path",      url: "url",      title: "title",      search: "search",      referrer: "referrer",      phone: "1-202-555-0146",    }, {      integrations: {        user: {          lookup: "phone"        }      });Property mapping
The following table lists the mappings between RudderStack and User.com properties for page call:
| RudderStack property | User.com property | |
|---|---|---|
userId/traits.userId/traits.id/context.traits.userId/context.traits.id | client_user | Required | 
traits.url/context.traits.url | page_domain | Required | 
traits.path/context.traits.path | page_path | Required | 
originalTimestamp/timestamp | timestamp | Required | 
Group
You can use the group call to create or update a company profile and associate a user with it.
A sample group call is shown below:
rudderanalytics.group(  "group01", {    name: "Alex Keener",    phone: "1-202-555-0146",    size: 51,    zipcode: 90009,    street: "6649 N Blue Gum Street",    city: "New Orleans",    region: "Louisiana",    country: "USA"  },);Property mapping
The following table lists the mappings between RudderStack and User.com properties for the group call:
| RudderStack property | User.com property | |
|---|---|---|
userId/traits.userId/traits.id/context.traits.userId/context.traits.id/anonymousId | custom_id(user) | Required | 
groupId/traits.groupId | custom_id(company) | Optional | 
traits.name | name(company name) | Optional | 
traits.email/context.traits.email/properties.email/context.externalId.0.id | email | Optional | 
traits.address/context.traits.address | address | Optional | 
traits.address.city/context.traits.address.city | city | Optional | 
traits.region/context.traits.region | region | Optional | 
traits.country/context.traits.country | country | Optional | 
traits.description | description | Optional | 
traits.phone/context.traits.phone/properties.phone | phone_numbers | Optional | 
traits.zip/traits.zipcode/traits.address.zipcode/traits.address.postalcode/context.traits.zip/context.traits.zipcode/context.traits.address.zipcode/context.traits.address.postalcode | postal_code | Optional | 
traits.size | size | Optional | 
traits.tags | tags | Optional | 
FAQ
Where can I find the User.com public REST API key?
To get your public REST API key, follow these steps:
- Log into your User.com dashboard and go to your app.
 - Click Settings > App settings > Advanced > Public REST API keys.
 - Click Create API key, as shown:
 
    Where can I find the User.com app subdomain?
To get your app subdomain, follow these steps:
- Log into your User.com dashboard and go to your app.
 - Click Settings > Setup & Integrations to see the app domain. The subdomain is the part of the complete domain excluding 
.user.com, as shown: 
    Contact us
For more information on the topics covered on this page, email us or start a conversation in our Slack community.