Link Aha! Ideas and Salesforce records in bulk (Advanced plan)

Aha! Ideas

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.

Top

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.

Top

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.

Top

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:

  1. integration_id containing the ID of your Aha!/Salesforce integration that the fields should be associated with.

  2. integratable_id which is the ID of the idea endorsement you created in the previous step.

  3. integratable_type which will always be "Ideas::IdeaEndorsement".

Top

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.

Top

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

Top

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.

Top

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"}
]
}

Top

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.

Top