Configuring a Salesforce plugin for Amazon Q Business
Salesforce is a customer relationship management (CRM) tool for managing customer interactions. If you’re a Salesforce user, you can create an Amazon Q Business plugin to allow your end users to perform the following actions from within their web experience chat:
-
Managing cases (create, delete, update, get)
-
Retrieving account lists
-
Handling opportunities (create, update, delete, get, fetch specific)
-
Fetching specific contacts
To set up this plugin, you'll need configuration details from your Salesforce instance to connect Amazon Q Business with Salesforce.
For more information on how to use plugins during your web experience chat, see Using plugins.
Prerequisites
Before you configure your Amazon Q Salesforce plugin, you must do the following:
-
As an admin, create a new OAuth 2.0 Salesforce app in the Salesforce developer console with scoped permissions for performing actions in Amazon Q. To learn how to do this, see Create a Connected App in Salesforce for OAuth
in Salesforce Developer Documentation. -
Make sure to select Yes for Enable Authorization Code and Credential Flow, Require Secret for Web Server Flow, Require Secret for Refresh Token Flow, Enable Token Exchange Flow, and Require Secret for Token Exchange Flow.
-
Make sure that the following required scopes are added:
-
refresh_token
-
id
-
api
-
full
-
-
Note the domain URL of your Salesforce instance. For example:
https://
.yourInstance
.my.salesforce.com/services/data/v60.0 -
Note your:
-
Access token URL – For Salesforce OAuth applications, this is
https://login.salesforce.com/services/oauth2/token
. -
Authorization URL – For Salesforce OAuth applications, this is
https://login.salesforce.com/services/oauth2/authorize
. -
Redirect URL – The URL to which user needs to be redirected after authentication. If your deployed web url is
<q-endpoint>
, use<q-endpoint>/oauth/callback
. Amazon Q Business will handle OAuth tokens in this URL. This callback URL needs to be allowlisted in your third-party application. -
Client ID – The client ID generated when you create your OAuth 2.0 application in Salesforce.
-
Client secret – The client secret generated when you create your OAuth 2.0 application in Salesforce.
You will need this authentication information during the plugin configuration process.
-
Service access roles
To successfully connect Amazon Q to Salesforce, you need to give Amazon Q the following permission to access your Secrets Manager secret to get your Salesforce credentials. Amazon Q assumes this role to access your Salesforce credentials.
The following is the service access IAM role required:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:{{your-region}}:{{your-account-id}}:secret:[[secret-id]]" ] } ] }
To allow Amazon Q to assume a role, use the following trust policy:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "QBusinessApplicationTrustPolicy", "Effect": "Allow", "Principal": { "Service": "qbusiness.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "{{source_account}}" }, "ArnLike": { "aws:SourceArn":"arn:aws:qbusiness:{{your-region}}:{{source_account}}:application/{{application_id}}" } } } ] }
If you use the console and choose to create a new IAM role, Amazon Q creates the role for you. If you use the console and choose to use an existing secret, or you use the API, make sure your IAM role contains these permissions.
Creating a plugin
To create a Salesforce plugin for your web experience chat, you can use the AWS Management Console or the CreatePlugin API operation. The following tabs provide a procedure for creating a Salesforce plugin using the console and code examples for the AWS CLI.