## Connection

When you're setting up your first workflow with Salesforce, you will need to create a [Connection](https://docs.getmesa.com/going-further/credentials) in order to connect MESA with Salesforce.

1. Log in to Salesforce, then click the Setup button (gear icon in the top right). If a menu is displayed, then click Setup **.**

2. In the left-hand menu, navigate to Apps and App Manager.

3. Then click on New External Client App.

4. Enter MESA for the External Client App Name. The API Name field will then auto-populate.

5. Enter a valid email for Contact Email **.**

6. Ensure Enable OAuth Settings is checked in the API (Enable OAuth Settings) menu.

7. Then for Callback URL, enter: [https://app.getmesa.com/apps/mesa/oauth/redirect-token](https://app.getmesa.com/apps/mesa/oauth/redirect-token)

8. Then select all items under Available OAuth Scopes and hit the right arrow under Add to move all of them to Selected OAuth Scopes.

At the very least, Manage user data via APIs (api) and Perform requests at any time (refresh_token, offline_access) must be added as Selected OAuth Scopes.

9. By default, 3 settings will be selected automatically. Ensure that only the Require Secret for Web Server Flow and Introspect All Tokens checkboxes are selected from the list.

10. Then hit the Create button at the bottom.

11. Once you are redirected back to view the app's details, click on Policies under your app's name.

12. Under OAuth Policies, ensure that your Refresh Token Validity Period is set to 30 days.

13. Once you have checked your app policy settings, click Settings under your app name.

14. In the OAuth Settings menu, click on the App Settings Consumer Key and Secret button. You may get prompted to sign in again so please do so.

15. For this next step, you are going to copy and paste these values from the Salesforce screen into your MESA workflow. In a new tab on your browser, open your [Salesforce Trigger or Action](https://docs.getmesa.com/workflow-builder) to proceed.

16. In Salesforce, click on the Consumer Key button and paste the copied value into the Client ID field of your MESA Salesforce step's Connection menu.

17. Do the same for Salesforce's Consumer Secret and paste it into the "Client Secret" field of your MESA Salesforce step's Connection menu.

18. For MESA's Authorization URL field, enter: [**https://login.salesforce.com/services/oauth2/authorize**](https://login.salesforce.com/services/oauth2/authorize)

19. For MESA's Token URL field, enter: [**https://login.salesforce.com/services/oauth2/token**](https://login.salesforce.com/services/oauth2/token)

If you are connecting to a Salesforce sandbox, you will need to:
\- Replace the **Authorization URL** with: [https://test.salesforce.com/services/oauth2/authorize](https://test.salesforce.com/services/oauth2/authorize)
\- Replace the **Token URL** with: [https://test.salesforce.com/services/oauth2/token](https://test.salesforce.com/services/oauth2/token)

20. Click Sign in with Salesforce. You may be asked to login to your Salesforce account. Once logged on, you will get a prompt asking for access. Click Allow.

21. You will be taken back to MESA, with a new Salesforce connection created.

You have now finished setting up your Salesforce connection. Click the Retrieve Fields button to import your fields.

Salesforce plans that support API access are: Enterprise, Unlimited, Developer and Performance.

## Configure

### Retrieve Fields

Click the Retrieve Fields button to pull in the current fields associated with your Salesforce action.

If you’ve made updates to your fields in Salesforce you will want to click the Retrieve Fields button to pull in the latest changes.

## Technical Notes

### Why can't I set the amount on an opportunity?

- If an opportunity includes products, the amount on the opportunity will be the total of its related products. For more information, please refer to [this Salesforce article](https://help.salesforce.com/s/articleView?language=en_US&id=000335960&mode=1&type=1).

### Connection error codes

- If you experience any issues or see this error `error=invalid_client_id&error_description=client%20identifier%20invalid` when creating a Salesforce connection, please make sure that your Salesforce Client ID and Secret were copied over correctly and that your Salesforce App has the correct Callback URL.

- If you experience any issues or see this error `error=redirect_url_mismatch&error_description=redirect_url&20must%20match%20configuration` when creating a Salesforce connection, please make sure you have added the Callback URL in the External Client app while creating it in Salesforce.

View Salesforce templates and tutorials [here](/content/apps/salesforce/integrate/index.html)!

Salesforce plans that support API access are: Enterprise, Unlimited, Developer and Performance.
