When you first integrate your Aha! account and Salesforce, you might have hundreds (perhaps thousands) of past ideas in one tool or the other that you would like to link together. Once linked, you will be able to use either your Aha! account or Salesforce to analyze your customers' feedback and visualize trends and progress.
There is not a way to accomplish this in the Aha! account or Salesforce user interfaces. But since both tools have APIs, you can create these links yourself by following these steps.
Click any link to skip ahead:
Overview
In this process, you will need to use both tools' APIs.
First, create the links in your Aha! account using the Aha! API.
Then, create the links in Salesforce using the Salesforce API.
Get the Salesforce record IDs
Before you can set up integration links, you need to know the Salesforce ID for each Account, Opportunity, or Case that you want to link to an Aha! idea.
You may need to contact Salesforce's support if you need further assistance with using their API to obtain the account IDs.
Create a vote on each idea in your Aha! account
Next, you need to create a vote (called an endorsement in the Aha! API) for each idea. Technically, the Salesforce integration links a Salesforce account, opportunity, or case to an idea endorsement, not to the idea itself, so each idea needs at least one vote.
To do this, use the idea endorsements API.
Create integration linking fields in your Aha! account
Finally, you are ready to link the Aha! idea endorsement to the Salesforce account, opportunity, or case.
To do this, create an integration field. Each idea endorsement, you will need to provide the following three parameters:
integration_id containing the ID of your Aha!/Salesforce integration that the fields should be associated with.
integratable_id which is the ID of the idea endorsement you created in the previous step.
integratable_type which will always be "Ideas::IdeaEndorsement".
Link Aha! votes to Salesforce Accounts
To link to a Salesforce Account, you will need to create the following integration fields:
Field name |
Field Value |
Notes |
account_id |
{Account.ID} |
The Salesforce Account ID |
related_id |
{ID} |
The Salesforce Account ID |
related_type |
"Account" |
The string Account |
account_name |
{Account.Name} |
|
base_url |
https://{HOST}.my.salesforce.com |
The base URL for your Salesforce account |
Please note that this is different from linking Aha! idea organizations to Salesforce Accounts that includes syncing data from Salesforce to the idea organization. To do that, please see below.
Link Aha! votes to Salesforce Cases
To link to a Salesforce Case, you will need to create the following integration fields:
Field name |
Field Value |
Notes |
related_id |
{ID} |
The Salesforce Case ID |
related_type |
"Case" |
The string Case |
account_name |
{Account.Name} |
If the Case is for a specific Account |
account_id |
{Account.ID} |
If the Case is for a specific Account |
base_url |
https://{HOST}.my.salesforce.com |
The base URL for your Salesforce account |
Link Aha! votes to Salesforce Opportunities
To link to a Salesforce Opportunity, you will need to create the following integration fields:
Field name |
Field Value |
Notes |
opportunity_id |
{ID} |
The Salesforce Opportunity ID |
aha::remote_entity |
"opportunity" |
The string opportunity (lowercase) |
related_id |
{ID} |
The Salesforce Opportunity ID |
related_type |
"Opportunity" |
The string Opportunity |
account_name |
{Account.Name} |
If the Opportunity is for a specific Account |
account_id |
{Account.ID} |
If the Opportunity is for a specific Account |
base_url |
https://{HOST}.my.salesforce.com |
The base URL for your Salesforce account |
Providing the opportunity_id and aha::remote_entity fields will allow Aha! to sync the mapped fields from Salesforce to the idea vote.
Link Aha! idea organizations to Salesforce Accounts
If you want your Aha! idea organizations to be linked to your Salesforce Accounts, you will need to create integration fields in your Aha! idea organization.
Note: The organization is not in the proxy vote table.
Field name |
Field Value |
Notes |
Id (capital i) |
{Account.ID} |
The Salesforce Account ID |
aha::remote_entity |
"account" |
The string account (lowercase) |
related_id |
{ID} |
The Salesforce Account ID |
related_type |
"Account" |
The string Account |
account_name |
{Account.Name} |
|
base_url |
https://{HOST}.my.salesforce.com |
The base URL for your Salesforce account |
display_link |
https://{HOST}.my.salesforce.com/{Account.ID} |
The URL for the Account in Salesforce |
display_short |
{Account.Name} |
Account name |
display_summary |
{Account.Name} |
Account name |
display_display |
{Account.Name} |
Account name |
The API documented only mentions a single field, but you can create multiple fields by passing an array of fields in the body of the request (in the integration_fields array).
{
"integration_fields": [
{"name": "account_id", "value": "ABC123"},
{"name": "related_id", "value": "ABC123"}
]
}
Link Aha! ideas to Salesforce records in Salesforce
For these new links to be visible in Salesforce, you also need to add them into the Aha! tables in Salesforce.
The Salesforce information is stored in two custom objects:
-
ahaapp__AhaIdea__c:This is a custom object that represents an Aha! idea. This has the following fields:
Name: The idea name (truncated to 80 characters)
ahaapp__ReferenceNum__c: The idea reference number (reference_num in the Aha! API response).
ahaapp__Status__c: The workflow status (workflow_status.name in the Aha! API response).
-
ahaapp__AhaIdeaLink__c: This is the link between a single ahaapp__AhaIdea__c and a Salesforce record (Account, Case, or Opportunity). This has the following fields:
ahaapp__LinkedBy__c: The ID of the Salesforce user that linked the idea to the Salesforce record.
ahaapp__AhaIdea__c: The ID of the ahaapp__AhaIdea__c record.
ahaapp__Account__c: The ID of the Salesforce Account the idea is linked to (if any).
ahaapp__Case__c: The ID of the Salesforce Case the idea is linked to (if any).
ahaapp__Opportunity__c: The ID of the Salesforce Opportunity the idea is linked to (if any).
A single ahaapp__AhaIdeaLink__c can only be linked to a single Salesforce record.
This means that you should only provide one of ahaapp__Account__c, ahaapp__Case__c, or ahaapp__Opportunity__c.
If you want to link an idea to multiple Salesforce records, you will need to create multiple ahaapp__AhaIdeaLink__c records.
To create the Salesforce records via the Salesforce API you can use the sObject Basic Information API.
For example, to create a new ahaapp__AhaIdea__c record you can use the following command:
curl https://{HOST}.my.salesforce.com/services/data/v58.0/sobjects/ahaapp__AhaIdea__c/ -H "Authorization: Bearer {TOKEN}" -H "Content-Type: application/json" -d "@newidea.json"
With a newidea.json file that looks like:
{
"Name": "My Idea",
"ahaapp__ReferenceNum__c": "I-1234",
"ahaapp__Status__c": "Under consideration"
}
The response will include the ID of the new record. This needs to be used when creating the ahaapp__AhaIdeaLink__c record.