PersistIQ
4 minute read
PersistIQ is an outbound sales automation and customer discovery platform. It helps you find new customers, onboard them, and organize your outreach strategies effectively.
Connection compatibility
| Destination Information | |||
|---|---|---|---|
| |||
Get started
Once you have confirmed that the source platform supports sending events to PersistIQ, follow these steps:
- From your RudderStack dashboard, add a source. Then, from the list of destinations, select PersistIQ.
- Assign a name to the destination and click Continue.
Connection settings
To successfully configure PersistIQ as a destination, you will need to configure the following settings:
- PersistIQ REST API Key: Enter your PersistIQ API key. For more information on obtaining the API key, refer to the FAQ section below.
- Map RudderStack user attributes to PersistIQ Lead attributes: Use this setting to map your RudderStack event properties to the custom or non-standard PersistIQ lead attributes.
Identify
You can use RudderStack’s identify call to create or update a lead (prospect) in PersistIQ. RudderStack sends the user information to PersistIQ via their /leads endpoint.
Creating a new lead
A sample identify call that creates a new lead in PersistIQ is shown below:
rudderanalytics.identify("1hKOmRA4GRlm", {
name: "Alex Keener",
address: "99 Blue Gum Street",
email: "alex@example.com"
})RudderStack automatically maps all common attributes like name, email, city, etc. to the PersistIQ lead attributes. To map specific event properties to the custom PersistIQ lead attributes, use the Map RudderStack user attributes to PersistIQ Lead attributes dashboard setting to specify the mapping.
Supported mappings
The following table lists the mappings between the RudderStack properties and PersistIQ attributes:
| RudderStack property | PersistIQ property | Data type |
|---|---|---|
traits.dup | dup | String |
traits.creator_id | creator_id | String |
context.traits.emailtraits.email | lead[0].email | String |
context.traits.countrytraits.country | lead[0].country | String |
context.traits.citytraits.city | lead[0].city | String |
context.traits.gendertraits.gender | lead[0].gender | String |
context.traits.companytraits.company | lead[0].company_name | String |
context.traits.phonetraits.phone | lead[0].phone | Phone number |
context.traits.facebookUrltraits.facebookUrl | lead[0].facebookUrl | URL |
context.traits.twitterUrltraits.twitterUrl | lead[0].twitterUrl | URL |
context.traits.linkedinUrltraits.linkedinUrl | lead[0].linkedinUrl | URL |
traits.firstNametraits.firstnametraits.first_namecontext.traits.firstNamecontext.traits.firstnamecontext.traits.first_name | lead[0].first_name | String |
traits.lastNametraits.lastnametraits.last_namecontext.traits.lastNamecontext.traits.lastnamecontext.traits.last_name | lead[0].last_name | String |
traits.{x}context.traits.{x} | lead[0].{x} | - |
RudderStack does not batch events before sending them to PersistIQ. Hence, the index inside theleadarray is always0.
Updating an existing lead
RudderStack automatically updates a lead if the identify call contains the persistIqLeadId field in the externalId object. Otherwise, it creates a new lead.
A sample identify call that updates an existing PersistIQ lead is shown below:
rudderanalytics.identify("1hKOmRA4GRlm", {
name: "Alex Keener",
address: "99 Blue Gum Street",
email: "alex@example.com"
}, {
"externalId": [{
"type": "persistIqLeadId",
"id": "abc12345"
}]
})For more information on getting your PersistIQ lead ID, refer to the FAQ section below.
Supported mappings
The following table list the mappings between the RudderStack properties and PersistIQ attributes:
| RudderStack property | PersistIQ property | Data type |
|---|---|---|
externalId.persistIqLeadIdRequired | leadId | String |
traits.statuscontext.traits.status | status | String |
context.traits.emailtraits.email | data.email | String |
context.traits.countrytraits.country | data.country | String |
context.traits.citytraits.city | data.city | String |
context.traits.gendertraits.gender | data.gender | String |
context.traits.companytraits.company | data.company_name | String |
context.traits.phonetraits.phone | data.phone | String |
context.traits.facebookUrltraits.facebookUrl | data.facebookUrl | URL |
context.traits.twitterUrltraits.twitterUrl | data.twitterUrl | URL |
context.traits.linkedinUrltraits.linkedinUrl | data.linkedinUrl | URL |
traits.firstNametraits.firstnametraits.first_namecontext.traits.firstNamecontext.traits.firstnamecontext.traits.first_name | data.first_name | String |
traits.lastNametraits.lastnametraits.last_namecontext.traits.lastNamecontext.traits.lastnamecontext.traits.last_name | data.last_name | String |
traits.{x}context.traits.{x} | data.{x} | - |
The lead status passed in thetraits.status/context.traits.statusmust already be configured in your PersistIQ dashboard.
Group
You can use the group events to add or remove a lead from a group in PersistIQ. RudderStack uses the /campaigns endpoint to send this information to PersistIQ.
A sample group call is shown below:
rudderanalytics.group("group01", {
mailbox_id: "mbid123",
operation: "add" // set to remove to remove user from a group
}, {
"externalId": [{
"type": "persistIqLeadId",
"id": "abc12345"
}]
})If not explicitly specified, RudderStack automatically sets thetraits.operationparameter toadd. To remove a user from the group, set this parameter toremove.
Supported mappings
The following table list the mappings between the RudderStack properties and PersistIQ attributes:
| RudderStack property | PersistIQ property |
|---|---|
groupIdRequired | campaign_id |
externalId.persistIqLeadIdRequired | leadId |
traits.mailbox_idcontext.traits.mailbox_id | mailbox_id |
FAQ
Where can I find the PersistIQ API key?
To get your PersistIQ API key, follow these steps:
- Log in to your PersistIQ dashboard.
- From the bottom left corner, click your profile button and go to Settings and Billing > Integrations. Your API key will be listed here:

How do I get the PersistIQ lead ID and campaign ID?
To get a prospect’s lead ID in the PersistIQ dashboard, click the specific prospect. You can find the ID in the resulting URL:

Similarly, to get a campaign ID, go to Campaigns in your dashboard and click the required campaign. The ID should be visible in the resulting URL.
