---
schema_version: "1"
id: ca5683eb42d42a0bb6f0e0abe9b5e41bd73a730dd22afc5d8dfeba2680e6e3c7
title: HTTP Connector Reference
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/composer/ms_composer_http_reference.md
canonical_url: https://docs.mulesoft.com/composer/ms_composer_http_reference
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 52cb5638459e9814f52616ccc58c7c45e13fa8797d4b2153ee332ca039d60779
description: MuleSoft Documentation Site
latest: true
---
---
product: Composer
---

# HTTP Connector Reference

> For the full documentation index, see: https://docs.mulesoft.com/llms.txt

HTTP Connector connects cloud applications that are not currently supported through dedicated
connectors. Use HTTP Connector to connect to systems that Composer does not currently support to
extend the capabilities of the systems that Composer does support. HTTP Connector for Composer uses
[HTTP](https://www.digitalocean.com/community/tutorials/http-1-1-vs-http-2-what-s-the-difference#http-1-1)
1.1 to handle JSON data.

## Connections

To connect to a system, whether it is a source of data or the target where you are sending data, you
must create a connection with the required credentials of that system. You typically connect to
different systems within a flow and can reuse each connection every time you need to connect.

Provide the following connection information:

> [!NOTE] The HTTP response timeout is 60 seconds and cannot be changed.

Connection Name

Enter a connection name that will help you remember the details of this connection. You can reuse
connections multiple times in a single flow, and in more than one flow, and the credentials are
hidden after you create the connection. Therefore, it’s helpful to provide a name that easily
identifies this connection from others.

Only you can see the connection. Other users in your Composer app must create their own connections.

Base URL

The default location URL for the cloud application that the connection uses.

Authorization

The following authorization options are available:

- **OAuth 2.0 Client Credentials**  
  The OAuth 2.0 Client Credentials obtain an access token from a user-defined path. Provide a value
  for the following fields:

  - **Base URL**

  - **Client ID**

  - **Client Secret**

  - **Token URL**

- **API Key**  
  The API Key connects to applications without explicitly defining a user. You must add this key to
  all requests, and the cloud application identifies the origin of the request and completes the
  authorization. Provide a value for the following fields:

  - **Base URL**

  - **Name**

  - **Value**

  - **Sent As**: Select one of the following values:

    - **Header**: If selected, Composer adds the following header to the request: `Name: Value`.

    - **Query Parameter**: If selected, Composer adds the following query parameter to the request:
      `Name=Value`.

- **Basic Authentication**  
  The Basic Authentication method enables an HTTP user agent to provide a username and password when
  making an HTTP request. Provide a value for the following fields:

  - **Base URL**

  - **Username**

  - **Password**

- **Bearer Token Authorization** Bearer Token Authorization is the authentication process that sends
  a header named `Authorization` with a value of `Bearer` and a token with every request. Provide a
  value for the following fields:

  - **Base URL**

  - **Token**

### Connect Your Target System in Composer Using OAuth 2.0

Using HTTP Connector, you can establish a connection with an
[OAuth 2.0 Authorization Code Grant](https://auth0.com/intro-to-iam/what-is-oauth-2) to enable
authorization. With this authorization, you can then access resources hosted by other apps such as
Salesforce, Gmail, or Outlook 365.

Before establishing a connection, you must create an OAuth Client in the target system. The process
for creating an OAuth Client depends on each target system.

The following tables provide configuration examples and details about required fields when
connecting to a target system using an OAuth client:

#### Fortnox

> [!NOTE] To use the same **Client ID** and **Client Secret** in different flows, use the same
> Composer connection and consider the allowed requests per minute. To use different Composer
> connections, use different Fortnox environments.

<table><colgroup><col> <col> <col> <col></colgroup><thead><tr><th>Step</th><th>Field</th><th>Example Value</th><th>Notes</th></tr></thead><tbody><tr><td rowspan="13"><p>Connect to your HTTP Account</p></td><td><p><strong>Connection Display Name</strong></p></td><td><p><code>Fort Nox at admin@1342287</code></p></td><td><p>This should be your user.</p></td></tr><tr><td><p><strong>Authorization Type</strong></p></td><td><p><code>OAuth 2.0 Authorization Code</code></p></td><td><p>The value in this field is fixed.</p></td></tr><tr><td><p><strong>Base URL</strong></p></td><td><p><code>https://api.fortnox.se</code></p></td><td></td></tr><tr><td><p><strong>Client ID</strong></p></td><td><p><code>NmE4OTUzY2…​</code></p></td><td></td></tr><tr><td><p><strong>Client Secret</strong></p></td><td><p><code>wMTUtZWV…​</code></p></td><td></td></tr><tr><td><p><strong>Scopes</strong></p></td><td><p><code>companyinformation</code></p></td><td><p>For all available scopes, see <a href="https://www.fortnox.se/developer" target="_blank" rel="noopener">OAuth 2.0 Scopes for Fortnox APIs</a>.</p></td></tr><tr><td><p><strong>Authorization URL</strong></p></td><td><p><code>https://apps.fortnox.se/oauth-v1/auth</code></p></td><td><p>You must register your callback URL on the Fortnox account created application. Fortnox allows you to specify only one callback URL by application, so you must create different applications to specify different environment callback URLs.</p></td></tr><tr><td><p><strong>Authorization URL Query Parameters</strong></p></td><td><div><div><p>Parameter 1:</p></div><div><ul><li><p><strong>Key</strong>: <code>access_type</code></p></li><li><p><strong>Value</strong>: <code>offline</code></p></li></ul></div></div></td><td></td></tr><tr><td><p><strong>Token Exchange URL</strong></p></td><td><p><code>https://apps.fortnox.se/oauth-v1/token</code></p></td><td></td></tr><tr><td><p><strong>Token Exchange Headers</strong></p></td><td><div><div><p>Parameter 1:</p></div><div><ul><li><p><strong>Key</strong>: <code>Authorization</code></p></li><li><p><strong>Value</strong>: <code>Basic NmE4OTUzY2MtMTk2Zi00MjZiLTgwMTUtZWVjMjY1OWI1MzAx</code></p></li></ul></div></div></td><td><div><div><p>Fortnox requires a Basic authentication header in the <code>Basic CREDENTIALS</code> format, where CREDENTIALS is the Base64 encoding of <strong>Client ID</strong> and <strong>Client Secret</strong>, separated with a colon. For example:</p></div><div><ul><li><p><strong>Client ID</strong>: <code>8VurtMGDTeAI</code></p></li><li><p><strong>Client Secret</strong>: <code>yFKwme8LEQ</code></p></li><li><p><strong>Credentials</strong>: <code>OFZ1cnRNR0RUZUFJOnlGS3dtZThMRVE=</code></p></li></ul></div><div><p>For more information, see <a href="https://www.fortnox.se/developer">Authentication</a>.</p></div></div></td></tr><tr><td><p><strong>Token Refresh URL</strong></p></td><td><p><code>https://apps.fortnox.se/oauth-v1/token</code></p></td><td></td></tr><tr><td><p><strong>Token Refresh Headers</strong></p></td><td><div><div><p>Parameter 1:</p></div><div><ul><li><p><strong>Key</strong>: <code>Authorization</code></p></li><li><p><strong>Value</strong>: <code>Basic NmE4OTUzY2MtMTk2Zi00MjZiLTgwMTUtZWVjMjY1OWI1MzAx</code></p></li></ul></div></div></td><td><div><div><p>Fortnox requires a Basic authentication header in the <code>Basic CREDENTIALS</code> format, where CREDENTIALS is the Base64 encoding of <strong>Client ID</strong> and <strong>Client Secret</strong>, separated with a colon. For example:</p></div><div><ul><li><p><strong>Client ID</strong>: <code>8VurtMGDTeAI</code></p></li><li><p><strong>Client Secret</strong>: <code>yFKwme8LEQ</code></p></li><li><p><strong>Credentials</strong>: <code>OFZ1cnRNR0RUZUFJOnlGS3dtZThMRVE=</code></p></li></ul></div><div><p>For more information, see <a href="https://www.fortnox.se/developer">Authentication</a>.</p></div></div></td></tr><tr><td><p><strong>Access Token Expired Code</strong></p></td><td><p><code>401</code></p></td><td></td></tr><tr><td rowspan="2"><p>Test HTTP Connection</p></td><td><p><strong>Request Method</strong></p></td><td><p><code>Get</code></p></td><td></td></tr><tr><td><p><strong>Request Path</strong></p></td><td><p><code>/3/companyinformation</code></p></td><td></td></tr></tbody></table>

#### Gmail

<table><colgroup><col> <col> <col> <col></colgroup><thead><tr><th>Step</th><th>Field</th><th>Example Value</th><th>Notes</th></tr></thead><tbody><tr><td rowspan="12"><p>Connect to your HTTP Account</p></td><td><p><strong>Connection Display Name</strong></p></td><td><p><code>Gmail john.smith@gmail.com connection</code></p></td><td><p>Including the Gmail email address aids in identifying the connection from a list.</p></td></tr><tr><td><p><strong>Authorization Type</strong></p></td><td><p><code>OAuth 2.0 Authorization Code</code></p></td><td><p>The value in this field is fixed.</p></td></tr><tr><td><p><strong>Base URL</strong></p></td><td><p><code>https://gmail.googleapis.com</code></p></td><td></td></tr><tr><td><p><strong>Client ID</strong></p></td><td><p><code>181298210352-mt5.apps.googleusercontent.com</code></p></td><td></td></tr><tr><td><p><strong>Client Secret</strong></p></td><td><p><code>YmmkNirf6zDc512u7MvPoJebP…​</code></p></td><td></td></tr><tr><td><p><strong>Scopes</strong></p></td><td><p><code>https://www.googleapis.com/auth/gmail.send https://www.googleapis.com/auth/gmail.readonly</code></p></td><td><p>For all available scopes, see <a href="https://developers.google.com/identity/protocols/oauth2/scopes" target="_blank" rel="noopener">OAuth 2.0 Scopes for Google APIs</a>.</p></td></tr><tr><td><p><strong>Authorization URL</strong></p></td><td><p><code>https://accounts.google.com/o/oauth2/v2/auth</code></p></td><td></td></tr><tr><td><p><strong>Authorization URL Query Parameters</strong></p></td><td><div><div><p>Parameter 1:</p></div><div><ul><li><p><strong>Key</strong>: <code>access_type</code></p></li><li><p><strong>Value</strong>: <code>offline</code></p></li></ul></div><div><p>Parameter 2:</p></div><div><ul><li><p><strong>Key</strong>: <code>prompt</code></p></li><li><p><strong>Value</strong>: <code>consent</code></p></li></ul></div></div></td><td></td></tr><tr><td><p><strong>Token Exchange URL</strong></p></td><td><p><code>https://oauth2.googleapis.com/token</code></p></td><td></td></tr><tr><td><p><strong>Token Refresh URL</strong></p></td><td><p><code>https://oauth2.googleapis.com/token</code></p></td><td></td></tr><tr><td><p><strong>Token Revoke URL</strong></p></td><td><p><code>https://oauth2.googleapis.com/revoke</code></p></td><td></td></tr><tr><td><p><strong>Access Token Expired Code</strong></p></td><td><p><code>401</code></p></td><td></td></tr><tr><td rowspan="2"><p>Test HTTP Connection</p></td><td><p><strong>Request Method</strong></p></td><td><p><code>Get</code></p></td><td></td></tr><tr><td><p><strong>Request Path</strong></p></td><td><p><code>/gmail/v1/users/me/profile</code></p></td><td><p>For more information, see the <a href="https://developers.google.com/workspace/gmail/api/guides" target="_blank" rel="noopener">Gmail API documentation</a>.</p></td></tr></tbody></table>

#### Google Calendar

<table><colgroup><col> <col> <col> <col></colgroup><thead><tr><th>Step</th><th>Field</th><th>Example Value</th><th>Notes</th></tr></thead><tbody><tr><td rowspan="12"><p>Connect to your HTTP Account</p></td><td><p><strong>Connection Display Name</strong></p></td><td><p><code>Calendar at john.smith@gmail.com</code></p></td><td><p>Including the Gmail email address aids in identifying the connection from a list.</p></td></tr><tr><td><p><strong>Authorization Type</strong></p></td><td><p><code>OAuth 2.0 Authorization Code</code></p></td><td><p>The value in this field is fixed.</p></td></tr><tr><td><p><strong>Base URL</strong></p></td><td><p><code>https://www.googleapis.com/calendar</code></p></td><td></td></tr><tr><td><p><strong>Client ID</strong></p></td><td><p><code>181298210352-mt5.apps.googleusercontent.com</code></p></td><td></td></tr><tr><td><p><strong>Client Secret</strong></p></td><td><p><code>YmmkNirf6zDc512u7MvPoJebP…​</code></p></td><td></td></tr><tr><td><p><strong>Scopes</strong></p></td><td><div><div><ul><li><p><code>https://www.googleapis.com/auth/calendar.events</code></p></li><li><p><code>https://www.googleapis.com/auth/calendar.readonly</code></p></li></ul></div></div></td><td><p>For all available scopes, see <a href="https://developers.google.com/identity/protocols/oauth2/scopes" target="_blank" rel="noopener">OAuth 2.0 Scopes for Google APIs</a>.</p></td></tr><tr><td><p><strong>Authorization URL</strong></p></td><td><p><code>https://accounts.google.com/o/oauth2/v2/auth</code></p></td><td></td></tr><tr><td><p><strong>Authorization URL Query Parameters</strong></p></td><td><div><div><p>Parameter 1:</p></div><div><ul><li><p><strong>Key</strong>: <code>access_type</code></p></li><li><p><strong>Value</strong>: <code>offline</code></p></li></ul></div><div><p>Parameter 2:</p></div><div><ul><li><p><strong>Key</strong>: <code>prompt</code></p></li><li><p><strong>Value</strong>: <code>consent</code></p></li></ul></div></div></td><td></td></tr><tr><td><p><strong>Token Exchange URL</strong></p></td><td><p><code>https://oauth2.googleapis.com/token</code></p></td><td></td></tr><tr><td><p><strong>Token Refresh URL</strong></p></td><td><p><code>https://oauth2.googleapis.com/token</code></p></td><td></td></tr><tr><td><p><strong>Token Revoke URL</strong></p></td><td><p><code>https://oauth2.googleapis.com/revoke</code></p></td><td></td></tr><tr><td><p><strong>Access Token Expired Code</strong></p></td><td><p><code>401</code></p></td><td></td></tr><tr><td rowspan="2"><p>Test HTTP Connection</p></td><td><p><strong>Request Method</strong></p></td><td><p><code>Get</code></p></td><td></td></tr><tr><td><p><strong>Request Path</strong></p></td><td><p><code>/v3/users/me/settings</code></p></td><td><p>For more information, see the <a href="https://developers.google.com/workspace/calendar/api/guides/overview" target="_blank" rel="noopener">Google Calendar API</a> documentation.</p></td></tr></tbody></table>

#### Google Sheets

<table><colgroup><col> <col> <col> <col></colgroup><thead><tr><th>Step</th><th>Field</th><th>Example Value</th><th>Notes</th></tr></thead><tbody><tr><td rowspan="12"><p>Connect to your HTTP Account</p></td><td><p><strong>Connection Display Name</strong></p></td><td><p><code>Google Sheets at john.smith@gmail.com</code></p></td><td><p>Including the Gmail email address aids in identifying the connection from a list.</p></td></tr><tr><td><p><strong>Authorization Type</strong></p></td><td><p><code>OAuth 2.0 Authorization Code</code></p></td><td><p>The value in this field is fixed.</p></td></tr><tr><td><p><strong>Base URL</strong></p></td><td><p><code>https://www.googleapis.com</code></p></td><td></td></tr><tr><td><p><strong>Client ID</strong></p></td><td><p><code>181298210352-mt5.apps.googleusercontent.com</code></p></td><td></td></tr><tr><td><p><strong>Client Secret</strong></p></td><td><p><code>YmmkNirf6zDc512u7MvPoJebP…​</code></p></td><td></td></tr><tr><td><p><strong>Scopes</strong></p></td><td><div><div><ul><li><p><code>https://www.googleapis.com/auth/spreadsheets</code></p></li><li><p><code>https://www.googleapis.com/auth/drive.readonly</code></p></li><li><p><code>https://www.googleapis.com/auth/drive.metadata.readonly</code></p></li></ul></div></div></td><td><p>For more information, see the <a href="https://developers.google.com/workspace/drive/api/guides/api-specific-auth" target="_blank" rel="noopener">Google Drive API-specific authorization and authentication information</a> documentation.</p></td></tr><tr><td><p><strong>Authorization URL</strong></p></td><td><p><code>https://accounts.google.com/o/oauth2/v2/auth</code></p></td><td></td></tr><tr><td><p><strong>Authorization URL Query Parameters</strong></p></td><td><div><div><p>Parameter 1:</p></div><div><ul><li><p><strong>Key</strong>: <code>access_type</code></p></li><li><p><strong>Value</strong>: <code>offline</code></p></li></ul></div><div><p>Parameter 2:</p></div><div><ul><li><p><strong>Key</strong>: <code>prompt</code></p></li><li><p><strong>Value</strong>: <code>consent</code></p></li></ul></div></div></td><td></td></tr><tr><td><p><strong>Token Exchange URL</strong></p></td><td><p><code>https://oauth2.googleapis.com/token</code></p></td><td></td></tr><tr><td><p><strong>Token Refresh URL</strong></p></td><td><p><code>https://oauth2.googleapis.com/token</code></p></td><td></td></tr><tr><td><p><strong>Token Revoke URL</strong></p></td><td><p><code>https://oauth2.googleapis.com/revoke</code></p></td><td></td></tr><tr><td><p><strong>Access Token Expired Code</strong></p></td><td><p><code>401</code></p></td><td></td></tr><tr><td rowspan="2"><p>Test HTTP Connection</p></td><td><p><strong>Request Method</strong></p></td><td><p><code>Get</code></p></td><td></td></tr><tr><td><p><strong>Request Path</strong></p></td><td><p><code>/drive/v3/about?fields=user</code></p></td><td><p>For more information, see the <a href="https://developers.google.com/workspace/drive/api/guides/api-specific-auth" target="_blank" rel="noopener">Google Drive API-specific authorization and authentication information</a> documentation.</p></td></tr></tbody></table>

#### Hubspot

<table><colgroup><col> <col> <col> <col></colgroup><thead><tr><th>Step</th><th>Field</th><th>Example Value</th><th>Notes</th></tr></thead><tbody><tr><td rowspan="10"><p>Connect to your HTTP Account</p></td><td><p><strong>Connection Display Name</strong></p></td><td><p><code>Hubspot Composer DEMO org</code></p></td><td><p>Including the Hubspot organization name aids in identifying the connection from a list.</p></td></tr><tr><td><p><strong>Authorization Type</strong></p></td><td><p><code>OAuth 2.0 Authorization Code</code></p></td><td><p>The value in this field is fixed.</p></td></tr><tr><td><p><strong>Base URL</strong></p></td><td><p><code>https://api.hubapi.com/</code></p></td><td></td></tr><tr><td><p><strong>Client ID</strong></p></td><td><p><code>63ddf8b7-c7b0-40f9-804…​</code></p></td><td><p>For more information, see the <a href="https://developers.hubspot.com/docs/apps/legacy-apps/authentication/working-with-oauth" target="_blank" rel="noopener">Hubspot documentation</a>.</p></td></tr><tr><td><p><strong>Client Secret</strong></p></td><td><p><code>2100f863-944c-433c-a…​</code></p></td><td></td></tr><tr><td><p><strong>Scopes</strong></p></td><td><div><div><ul><li><p><code>settings.users.read</code></p></li><li><p><code>crm.lists.read</code></p></li><li><p><code>settings.users.teams.read</code></p></li><li><p><code>crm.schemas.contacts.read</code></p></li></ul></div></div></td><td></td></tr><tr><td><p><strong>Authorization URL</strong></p></td><td><p><code>https://app.hubspot.com/oauth/authorize</code></p></td><td></td></tr><tr><td><p><strong>Token Exchange URL</strong></p></td><td><p><code>https://api.hubapi.com/oauth/v1/token</code></p></td><td></td></tr><tr><td><p><strong>Token Refresh URL</strong></p></td><td><p><code>https://api.hubapi.com/oauth/v1/token</code></p></td><td></td></tr><tr><td><p><strong>Access Token Expired Code</strong></p></td><td><p><code>401</code></p></td><td></td></tr><tr><td rowspan="2"><p>Test HTTP Connection</p></td><td><p><strong>Request Method</strong></p></td><td><p><code>Get</code></p></td><td></td></tr><tr><td><p><strong>Request Path</strong></p></td><td><div><div><ul><li><p><code>contacts/v1/lists/all/contacts/all?count=1</code></p></li><li><p><code>https://api.hubapi.com/application/settings/test/v1/actions/accounts-fetch</code></p></li></ul></div></div></td><td><p>For more information, see the <a href="https://developers.hubspot.com/docs/apps/legacy-apps/authentication/oauth-quickstart-guide" target="_blank" rel="noopener">Hubspot OAuth 2.0</a> documentation.</p></td></tr></tbody></table>

#### Jira

<table><colgroup><col> <col> <col> <col></colgroup><thead><tr><th>Step</th><th>Field</th><th>Example Value</th><th>Notes</th></tr></thead><tbody><tr><td rowspan="11"><p>Connect to your HTTP Account</p></td><td><p><strong>Connection Display Name</strong></p></td><td><p><code>Jira at ocs.citizen.demo@gmail.com (STG)</code></p></td><td><p>Including the Gmail email address aids in identifying the connection from a list.</p></td></tr><tr><td><p><strong>Authorization Type</strong></p></td><td><p><code>OAuth 2.0 Authorization Code</code></p></td><td><p>The value in this field is fixed.</p></td></tr><tr><td><p><strong>Base URL</strong></p></td><td><p><code>https://api.atlassian.com/ex/jira/077bc6b6-f2ab-4cd6-a694-c469cb2d058d/rest/api/3</code></p></td><td><p>The value in this field is the <strong>Cloud ID</strong> for your Jira account, which is the <strong>Tenant ID</strong> parameter in the <strong>Base URL</strong> field.</p></td></tr><tr><td><p><strong>Client ID</strong></p></td><td><p><code>SgPehF9AZ5ECD63iUJpG2aPO3j9qNvXM</code></p></td><td></td></tr><tr><td><p><strong>Client Secret</strong></p></td><td><p><code>Yf8q-wbEJjeJIhx5iuE-BiydpL1oCj7wVy2gaoYDEMCe4xwWO_Q2vbjyJg6rGmD7L</code></p></td><td></td></tr><tr><td><p><strong>Scopes</strong></p></td><td><div><div><ul><li><p><code>offline_access</code></p></li><li><p><code>read:jira-work</code></p></li><li><p><code>manage:jira-project</code></p></li><li><p><code>read:jira-user</code></p></li><li><p><code>write:jira-work</code></p></li></ul></div></div></td><td></td></tr><tr><td><p><strong>Authorization URL</strong></p></td><td><p><code>https://auth.atlassian.com/authorize</code></p></td><td><p>You must register your callback URL when creating a Jira account. As a result, these credentials only work in staging environments.</p></td></tr><tr><td><p><strong>Authorization URL Query Parameters</strong></p></td><td><div><div><p>Parameter 1:</p></div><div><ul><li><p><strong>Key</strong>: <code>audience</code></p></li><li><p><strong>Value</strong>: <code>api.atlassian.com</code></p></li></ul></div><div><p>Parameter 2:</p></div><div><ul><li><p><strong>Key</strong>: <code>prompt</code></p></li><li><p><strong>Value</strong>: <code>consent</code></p></li></ul></div></div></td><td></td></tr><tr><td><p><strong>Token Exchange URL</strong></p></td><td><p><code>https://auth.atlassian.com/oauth/token</code></p></td><td></td></tr><tr><td><p><strong>Token Refresh URL</strong></p></td><td><p><code>https://auth.atlassian.com/oauth/token</code></p></td><td></td></tr><tr><td><p><strong>Access Token Expired Code</strong></p></td><td><p><code>401</code></p></td><td></td></tr><tr><td rowspan="2"><p>Test HTTP Connection</p></td><td><p><strong>Request Method</strong></p></td><td><p><code>Get</code></p></td><td></td></tr><tr><td><p><strong>Request Path</strong></p></td><td><p><code>/myself</code></p></td><td></td></tr></tbody></table>

#### Microsoft Teams

<table><colgroup><col> <col> <col> <col></colgroup><thead><tr><th>Step</th><th>Field</th><th>Example Value</th><th>Notes</th></tr></thead><tbody><tr><td rowspan="10"><p>Connect to your HTTP Account</p></td><td><p><strong>Connection Display Name</strong></p></td><td><p><code>My Microsoft Teams connection</code></p></td><td><p>Including the Microsoft Teams instance name aids in identifying the connection from a list.</p></td></tr><tr><td><p><strong>Authorization Type</strong></p></td><td><p><code>OAuth 2.0 Authorization Code</code></p></td><td><p>The value in this field is fixed.</p></td></tr><tr><td><p><strong>Base URL</strong></p></td><td><p><code>https://graph.microsoft.com</code></p></td><td></td></tr><tr><td><p><strong>Client ID</strong></p></td><td><p><code>1c325c1c-8fd5-419f-85dc-a69cc2f30a21</code></p></td><td></td></tr><tr><td><p><strong>Client Secret</strong></p></td><td><p><code>P8M8Q~nAXXckZeqGxR-gE3WJIOsw~rIkjdG8jc7G</code></p></td><td></td></tr><tr><td><p><strong>Scopes</strong></p></td><td><div><div><ul><li><p><code>https://graph.microsoft.com/Mail.Read</code></p></li><li><p><code>https://graph.microsoft.com/User.Read</code></p></li><li><p><code>offline_access</code></p></li></ul></div></div></td><td></td></tr><tr><td><p><strong>Authorization URL</strong></p></td><td><p><code>https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/authorize</code></p></td><td><p>Tenant ID value: <code>https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/authorize</code></p></td></tr><tr><td><p><strong>Token Exchange URL</strong></p></td><td><p><code>https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/token</code></p></td><td></td></tr><tr><td><p><strong>Token Refresh URL</strong></p></td><td><p><code>https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/token</code></p></td><td></td></tr><tr><td><p><strong>Access Token Expired Code</strong></p></td><td><p><code>401</code></p></td><td></td></tr><tr><td rowspan="2"><p>Test HTTP Connection</p></td><td><p><strong>Request Method</strong></p></td><td><p><code>Get</code></p></td><td></td></tr><tr><td><p><strong>Request Path</strong></p></td><td><p><code>/v1.0/me</code></p></td><td></td></tr></tbody></table>

#### Outlook 365

<table><colgroup><col> <col> <col> <col></colgroup><thead><tr><th>Step</th><th>Field</th><th>Example Value</th><th>Notes</th></tr></thead><tbody><tr><td rowspan="10"><p>Connect to your HTTP Account</p></td><td><p><strong>Connection Display Name</strong></p></td><td><p><code>My Outlook 365 connection</code></p></td><td><p>Including the Outlook instance name aids in identifying the connection from a list.</p></td></tr><tr><td><p><strong>Authorization Type</strong></p></td><td><p><code>OAuth 2.0 Authorization Code</code></p></td><td><p>The value in this field is fixed.</p></td></tr><tr><td><p><strong>Base URL</strong></p></td><td><p><code>https://graph.microsoft.com</code></p></td><td></td></tr><tr><td><p><strong>Client ID</strong></p></td><td><p><code>1c325c1c-8fd5-419f-85dc-a69cc2f30a21</code></p></td><td></td></tr><tr><td><p><strong>Client Secret</strong></p></td><td><p><code>P8M8Q~nAXXckZeqGxR-gE3WJIOsw~rIkjdG8jc7G</code></p></td><td></td></tr><tr><td><p><strong>Scopes</strong></p></td><td><div><div><ul><li><p><code>https://graph.microsoft.com/Mail.Read</code></p></li><li><p><code>https://graph.microsoft.com/User.Read</code></p></li><li><p><code>offline_access</code></p></li></ul></div></div></td><td></td></tr><tr><td><p><strong>Authorization URL</strong></p></td><td><p><code>https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/authorize</code></p></td><td></td></tr><tr><td><p><strong>Token Exchange URL</strong></p></td><td><p><code>https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/token</code></p></td><td></td></tr><tr><td><p><strong>Token Refresh URL</strong></p></td><td><p><code>https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/token</code></p></td><td></td></tr><tr><td><p><strong>Access Token Expired Code</strong></p></td><td><p><code>401</code></p></td><td></td></tr><tr><td rowspan="2"><p>Test HTTP Connection</p></td><td><p><strong>Request Method</strong></p></td><td><p><code>Get</code></p></td><td></td></tr><tr><td><p><strong>Request Path</strong></p></td><td><div><div><p><code>/v1.0/me</code></p></div><div><p>-OR-</p></div><div><p><code>/v1.0/me/mailfolders/inbox/messages?$select=subject,from,receivedDateTime&amp;$top=25&amp;$orderby=receivedDateTime%20DESC</code></p></div></div></td><td></td></tr></tbody></table>

#### Procore (Production Environment)

<table><colgroup><col> <col> <col> <col></colgroup><thead><tr><th>Step</th><th>Field</th><th>Example Value</th><th>Notes</th></tr></thead><tbody><tr><td rowspan="10"><p>Connect to your HTTP Account</p></td><td><p><strong>Connection Display Name</strong></p></td><td><p><code>Procore Demo Org</code></p></td><td></td></tr><tr><td><p><strong>Authorization Type</strong></p></td><td><p><code>OAuth 2.0 Authorization Code</code></p></td><td><p>The value in this field is fixed.</p></td></tr><tr><td><p><strong>Base URL</strong></p></td><td><p><code>https://api.procore.com</code></p></td><td></td></tr><tr><td><p><strong>Client ID</strong></p></td><td><p><code>43a4c94b7e225ad7a8d99cb4a0ae0de26efa298…</code></p></td><td></td></tr><tr><td><p><strong>Client Secret</strong></p></td><td><p><code>e84ee4db2f944a7b585ca110ac20793b5e6c0…</code></p></td><td></td></tr><tr><td><p><strong>Authorization URL</strong></p></td><td><p><code>https://login.procore.com/oauth/authorize</code></p></td><td></td></tr><tr><td><p><strong>Token Exchange URL</strong></p></td><td><p><code>https://login.procore.com/oauth/token</code></p></td><td></td></tr><tr><td><p><strong>Token Refresh URL</strong></p></td><td><p><code>https://login.procore.com/oauth/token</code></p></td><td></td></tr><tr><td><p><strong>Token Revoke URL</strong></p></td><td><p><code>https://login.procore.com/oauth/revoke</code></p></td><td></td></tr><tr><td><p><strong>Access Token Expired Code</strong></p></td><td><p><code>401</code></p></td><td></td></tr><tr><td rowspan="2"><p>Test HTTP Connection</p></td><td><p><strong>Request Method</strong></p></td><td><p><code>Get</code></p></td><td></td></tr><tr><td><p><strong>Request Path</strong></p></td><td><p><code>/rest/v1.0/me</code></p></td><td></td></tr></tbody></table>

#### Procore (Sandbox Environment)

<table><colgroup><col> <col> <col> <col></colgroup><thead><tr><th>Step</th><th>Field</th><th>Example Value</th><th>Notes</th></tr></thead><tbody><tr><td rowspan="10"><p>Connect to your HTTP Account</p></td><td><p><strong>Connection Display Name</strong></p></td><td><p><code>Procore Sandbox Demo Org</code></p></td><td></td></tr><tr><td><p><strong>Authorization Type</strong></p></td><td><p><code>OAuth 2.0 Authorization Code</code></p></td><td><p>The value in this field is fixed.</p></td></tr><tr><td><p><strong>Base URL</strong></p></td><td><p><code>https://sandbox.procore.com</code></p></td><td></td></tr><tr><td><p><strong>Client ID</strong></p></td><td><p><code>43a4c94b7e225ad7a8d99cb4a0ae0de26efa298…</code></p></td><td></td></tr><tr><td><p><strong>Client Secret</strong></p></td><td><p><code>e84ee4db2f944a7b585ca110ac20793b5e6c0…</code></p></td><td></td></tr><tr><td><p><strong>Authorization URL</strong></p></td><td><p><code>https://login-sandbox.procore.com/oauth/authorize</code></p></td><td></td></tr><tr><td><p><strong>Token Exchange URL</strong></p></td><td><p><code>https://login-sandbox.procore.com/oauth/token</code></p></td><td></td></tr><tr><td><p><strong>Token Refresh URL</strong></p></td><td><p><code>https://login-sandbox.procore.com/oauth/token</code></p></td><td></td></tr><tr><td><p><strong>Token Revoke URL</strong></p></td><td><p><code>https://login-sandbox.procore.com/oauth/revoke</code></p></td><td></td></tr><tr><td><p><strong>Access Token Expired Code</strong></p></td><td><p><code>401</code></p></td><td></td></tr><tr><td rowspan="2"><p>Test HTTP Connection</p></td><td><p><strong>Request Method</strong></p></td><td><p><code>Get</code></p></td><td></td></tr><tr><td><p><strong>Request Path</strong></p></td><td><p><code>/rest/v1.0/me</code></p></td><td></td></tr></tbody></table>

#### QuickBooks

> [!NOTE] Add the `Accept: application/json` HTTP header to your requests since QuickBooks returns
> HTML by default.

<table><colgroup><col> <col> <col> <col></colgroup><thead><tr><th>Step</th><th>Field</th><th>Example Value</th><th>Notes</th></tr></thead><tbody><tr><td rowspan="14"><p>Connect to your HTTP Account</p></td><td><p><strong>Connection Display Name</strong></p></td><td><p><code>My QuickBooks connection</code></p></td><td></td></tr><tr><td><p><strong>Authorization Type</strong></p></td><td><p><code>OAuth 2.0 Authorization Code</code></p></td><td><p>The value in this field is fixed.</p></td></tr><tr><td><p><strong>Base URL</strong></p></td><td><p><code>https://sandbox-quickbooks.api.intuit.com</code></p></td><td><p>In your QuickBooks account, check for the realm ID or company ID. For example: <code>4620816365253449610</code>.</p></td></tr><tr><td><p><strong>Client ID</strong></p></td><td><p><code>ABOCnl9CHHDDpZ0RASkhadwSVBa1…​</code></p></td><td></td></tr><tr><td><p><strong>Client Secret</strong></p></td><td><p><code>qwDPs7K1huLWn2ZfdeVHQgpyYr…​</code></p></td><td></td></tr><tr><td><p><strong>Scopes</strong></p></td><td><p><code>com.intuit.quickbooks.accounting</code></p></td><td><p>For more information about scopes, check your QuickBooks account. When you create your QuickBooks account, you have two scopes depending on the URLs you need to use.</p></td></tr><tr><td><p><strong>Authorization URL</strong></p></td><td><p><code>https://appcenter.intuit.com/connect/oauth2</code></p></td><td><p>You must register your callback URL in your QuickBooks account in your application configuration. QuickBooks allows you to register multiple callback URLs, so you can create one application for all your environments.</p></td></tr><tr><td><p><strong>Token Exchange URL</strong></p></td><td><p><code>https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer</code></p></td><td></td></tr><tr><td><p><strong>Token Exchange Headers</strong></p></td><td><div><div><p>Parameter 1:</p></div><div><ul><li><p><strong>Key</strong></p></li><li><p><strong>Value</strong></p></li></ul></div></div></td><td></td></tr><tr><td><p><strong>Token Refresh URL</strong></p></td><td><p><code>https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer</code></p></td><td></td></tr><tr><td><p><strong>Token Refresh Headers</strong></p></td><td><div><div><p>Parameter 1:</p></div><div><ul><li><p><strong>Key</strong></p></li><li><p><strong>Value</strong></p></li></ul></div></div></td><td></td></tr><tr><td><p><strong>Token Revoke URL</strong></p></td><td><p><code>https://developer.api.intuit.com/v2/oauth2/tokens/revoke</code></p></td><td></td></tr><tr><td><p><strong>Token Revoke Headers</strong></p></td><td><div><div><p>Parameter 1:</p></div><div><ul><li><p><strong>Key</strong></p></li><li><p><strong>Value</strong></p></li></ul></div></div></td><td></td></tr><tr><td><p><strong>Access Token Expired Code</strong></p></td><td><p><code>401</code></p></td><td></td></tr><tr><td rowspan="2"><p>Test HTTP Connection</p></td><td><p><strong>Request Method</strong></p></td><td><p><code>Get</code></p></td><td></td></tr><tr><td><p><strong>Request Path</strong></p></td><td><p><code>/v3/company/{realmId}/companyinfo/{realmId}</code></p></td><td></td></tr></tbody></table>

#### Salesforce

<table><colgroup><col> <col> <col> <col></colgroup><thead><tr><th>Step</th><th>Field</th><th>Example Value</th><th>Notes</th></tr></thead><tbody><tr><td rowspan="12"><p>Connect to your HTTP Account</p></td><td><p><strong>Connection Display Name</strong></p></td><td><p><code>My Salesforce Acme connection</code></p></td><td><p>Including the Salesforce instance name in this field aids in identifying the connection from a list.</p></td></tr><tr><td><p><strong>Authorization Type</strong></p></td><td><p><code>OAuth 2.0 Authorization Code</code></p></td><td><p>The value in this field is fixed.</p></td></tr><tr><td><p><strong>Base URL</strong></p></td><td><p><code>https://&lt;instance&gt;.my.salesforce.com</code></p></td><td></td></tr><tr><td><p><strong>Client ID</strong></p></td><td><p><code>3MVG9kBt168mda_.aAARdkSYhzS6mkIA5bVzvid_ppcSV44vtKUFV3J</code></p></td><td><p>The value in this field is the <strong>Salesforce Connected App Client ID</strong>.</p></td></tr><tr><td><p><strong>Client Secret</strong></p></td><td><p><code>620187E2CD2DAEF6725AA404EADDFD8FECB390FA854DB637B95E186</code></p></td><td><p>The value in this field is the <strong>Salesforce Connected App Secret</strong>.</p></td></tr><tr><td><p><strong>Scopes</strong></p></td><td><p><code>full refresh_token</code></p></td><td></td></tr><tr><td><p><strong>Authorization URL</strong></p></td><td><p><code>https://login.salesforce.com/services/oauth2/authorize</code></p></td><td></td></tr><tr><td><p><strong>Authorization URL Query Parameters</strong></p></td><td><div><div><ul><li><p><strong>Key</strong>: <code>prompt</code></p></li><li><p><strong>Value</strong>: <code>login consent</code></p></li></ul></div></div></td><td></td></tr><tr><td><p><strong>Token Exchange URL</strong></p></td><td><p><code>https://login.salesforce.com/services/oauth2/token</code></p></td><td></td></tr><tr><td><p><strong>Token Refresh URL</strong></p></td><td><p><code>https://login.salesforce.com/services/oauth2/token</code></p></td><td></td></tr><tr><td><p><strong>Token Revoke URL</strong></p></td><td><p><code>https://login.salesforce.com/services/oauth2/revoke</code></p></td><td></td></tr><tr><td><p><strong>Access Token Expired Code</strong></p></td><td><p><code>401</code></p></td><td></td></tr><tr><td rowspan="2"><p>Test HTTP Connection</p></td><td><p><strong>Request Method</strong></p></td><td><p><code>Get</code></p></td><td></td></tr><tr><td><p><strong>Request Path</strong></p></td><td><p><code>/services/data/v55.0/</code></p></td><td><p>For more information, see the <a href="https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/quickstart_code.htm" target="_blank" rel="noopener">Salesforce REST API Developer Guide</a> documentation.</p></td></tr></tbody></table>

#### Shopify

<table><colgroup><col> <col> <col> <col></colgroup><thead><tr><th>Step</th><th>Field</th><th>Example Value</th><th>Notes</th></tr></thead><tbody><tr><td rowspan="9"><p>Connect to your HTTP Account</p></td><td><p><strong>Connection Display Name</strong></p></td><td><p><code>Shopify at my.account@example.com (QA)</code></p></td><td><p>For more information, see the <a href="https://www.shopify.com/partners" target="_blank" rel="noopener">Shopify Partner Program</a>.</p></td></tr><tr><td><p><strong>Authorization Type</strong></p></td><td><p><code>OAuth 2.0 Authorization Code</code></p></td><td><p>The value in this field is fixed.</p></td></tr><tr><td><p><strong>Base URL</strong></p></td><td><p><code>https://myowndevelopmentstore1.myshopify.com</code></p></td><td></td></tr><tr><td><p><strong>Client ID</strong></p></td><td><p><code>04bad9ea727686d3a61a47cc23772587</code></p></td><td></td></tr><tr><td><p><strong>Client Secret</strong></p></td><td><p><code>668ca7383d2558aa9f4270550a4dff62</code></p></td><td></td></tr><tr><td><p><strong>Scopes</strong></p></td><td><div><div><ul><li><p><code>write_customers</code></p></li><li><p><code>write_orders</code></p></li><li><p><code>write_products</code></p></li></ul></div></div></td><td></td></tr><tr><td><p><strong>Authorization Headers</strong></p></td><td><div><div><ul><li><p><strong>Authorization Header Name</strong>: <code>X-Shopify-Access-Token</code></p></li><li><p><strong>Authorization Header Value Prefix</strong>: <code>Bearer Prefix</code></p></li><li><p><strong>Authorization Header Custom Value Prefix</strong>: None</p></li></ul></div></div></td><td></td></tr><tr><td><p><strong>Token Exchange URL</strong></p></td><td><p><code>https://myowndevelopmentstore1.myshopify.com/admin/oauth/access_token</code></p></td><td></td></tr><tr><td><p><strong>Access Token Expired Code</strong></p></td><td><p><code>401</code></p></td><td></td></tr><tr><td rowspan="2"><p>Test HTTP Connection</p></td><td><p><strong>Request Method</strong></p></td><td><p><code>Get</code></p></td><td></td></tr><tr><td><p><strong>Request Path</strong></p></td><td><p><code>/admin/api/2022-07/shop.json</code></p></td><td></td></tr></tbody></table>

#### Slack

<table><colgroup><col> <col> <col> <col></colgroup><thead><tr><th>Step</th><th>Field</th><th>Example Value</th><th>Notes</th></tr></thead><tbody><tr><td rowspan="11"><p>Connect to your HTTP Account</p></td><td><p><strong>Connection Display Name</strong></p></td><td><p><code>My Slack inspiration workspace connection</code></p></td><td><p>Including the Slack workspace name aids in identifying the connection from a list.</p></td></tr><tr><td><p><strong>Authorization Type</strong></p></td><td><p><code>OAuth 2.0 Authorization Code</code></p></td><td><p>The value in this field is fixed.</p></td></tr><tr><td><p><strong>Base URL</strong></p></td><td><p><code>https://&lt;my-workspace&gt;.slack.com</code></p></td><td></td></tr><tr><td><p><strong>Client ID</strong></p></td><td><p><code>3806739369586.3819433415633</code></p></td><td><p><code>The value in this field is the <strong>Slack App Client ID</strong>.</code></p></td></tr><tr><td><p><strong>Client Secret</strong></p></td><td><p><code>d1cc08d9b2bf8573fa10e43f458d51a9</code></p></td><td><p><code>The value in this field is the <strong>Slack App Secret</strong>.</code></p></td></tr><tr><td><p><strong>Scopes</strong></p></td><td><p><code>chat:write</code></p></td><td></td></tr><tr><td><p><strong>Authorization URL</strong></p></td><td><p><code>https://slack.com/oauth/v2/authorize</code></p></td><td></td></tr><tr><td><p><strong>Token Exchange URL</strong></p></td><td><p><code>https://slack.com/api/oauth.v2.access</code></p></td><td></td></tr><tr><td><p><strong>Token Refresh URL</strong></p></td><td></td><td><p>Leave the value in this field blank.</p></td></tr><tr><td><p><strong>Token Revoke URL</strong></p></td><td><p><code>https://slack.com/api/auth.revoke</code></p></td><td></td></tr><tr><td><p><strong>Access Token Expired Code</strong></p></td><td><p><code>401</code></p></td><td></td></tr><tr><td rowspan="2"><p>Test HTTP Connection</p></td><td><p><strong>Request Method</strong></p></td><td><p><code>Get</code></p></td><td></td></tr><tr><td><p><strong>Request Path</strong></p></td><td><p><code>/api/api.test</code></p></td><td></td></tr></tbody></table>

#### Xero

<table><colgroup><col> <col> <col> <col></colgroup><thead><tr><th>Step</th><th>Field</th><th>Example Value</th><th>Notes</th></tr></thead><tbody><tr><td rowspan="11"><p>Connect to your HTTP Account</p></td><td><p><strong>Connection Display Name</strong></p></td><td><p><code>Xero Demo Company (US) connection</code></p></td><td></td></tr><tr><td><p><strong>Authorization Type</strong></p></td><td><p><code>OAuth 2.0 Authorization Code</code></p></td><td><p>The value in this field is fixed.</p></td></tr><tr><td><p><strong>Base URL</strong></p></td><td><p><code>https://api.xero.com/</code></p></td><td></td></tr><tr><td><p><strong>Client ID</strong></p></td><td><p><code>1AAE161E43B448C2A17B59</code></p></td><td></td></tr><tr><td><p><strong>Client Secret</strong></p></td><td><p><code>aMLNRJr3-oAaFtQOx1B-uf19qT</code></p></td><td></td></tr><tr><td><p><strong>Scopes</strong></p></td><td><div><div><ul><li><p><code>offline_access</code></p><div><ul><li><p><code>openid</code></p></li><li><p><code>profile</code></p></li><li><p><code>email</code></p></li></ul></div></li><li><p><code>accounting.transactions</code></p></li><li><p><code>accounting.attachments</code></p></li><li><p><code>accounting.reports.read</code></p></li><li><p><code>accounting.settings</code></p></li><li><p><code>accounting.contacts</code></p></li><li><p><code>accounting.journals.read</code></p></li></ul></div></div></td><td><p>For more information, see the <a href="https://developer.xero.com/documentation/guides/oauth2/scopes" target="_blank" rel="noopener">Xero Developer</a> documentation.</p></td></tr><tr><td><p><strong>Authorization URL</strong></p></td><td><p><code>https://login.xero.com/identity/connect/authorize</code></p></td><td></td></tr><tr><td><p><strong>Token Exchange URL</strong></p></td><td><p><code>https://identity.xero.com/connect/token</code></p></td><td></td></tr><tr><td><p><strong>Token Refresh URL</strong></p></td><td><p><code>https://identity.xero.com/connect/token</code></p></td><td></td></tr><tr><td><p><strong>Token Revoke URL</strong></p></td><td><p><code>https://identity.xero.com/connect/revocation</code></p></td><td></td></tr><tr><td><p><strong>Access Token Expired Code</strong></p></td><td><p><code>401</code></p></td><td></td></tr><tr><td rowspan="3"><p>Test HTTP Connection</p></td><td><p><strong>Request Method</strong></p></td><td><p><code>Get</code></p></td><td></td></tr><tr><td><p><strong>Request Path</strong></p></td><td><p><code>/api.xro/2.0/Users</code></p></td><td><div><div><p>For more information, see the Xero documentation:</p></div><div><ul><li><p><a href="https://developer.xero.com/documentation/guides/oauth2/overview/" target="_blank" rel="noopener">OAuth 2.0 for Xero</a></p></li><li><p><a href="https://developer.xero.com/documentation/guides/oauth2/auth-flow" target="_blank" rel="noopener">Standard authorization code flow for Xero</a></p></li></ul></div></div></td></tr><tr><td><p><strong>Request Path Headers</strong></p></td><td><div><div><ul><li><p><strong>Key</strong>: <code>Xero-Tenant-Id</code></p></li><li><p><strong>Value</strong>: <code>4268faf8-82a2-44e2-8ea2-4ec8f6ea3a26</code></p></li></ul></div></div></td><td><div><div><p>For more information, see the following:</p></div><div><ul><li><p><a href="https://api-explorer.xero.com/accounting/users/getusers" target="_blank" rel="noopener">Xero login</a></p></li><li><p><a href="https://developer.xero.com/documentation/guides/oauth2/auth-flow" target="_blank" rel="noopener">Standard authorization code flow for Xero</a></p></li></ul></div></div></td></tr></tbody></table>

#### Configure an OAuth 2.0 Authorization Code Connection

When creating an OAuth 2.0 Authorization Code connection with HTTP Connector, you must provide
additional information to establish the connection.

To establish an OAuth 2.0 Connection:

1.  Open a flow or create a new flow.

2.  Select a trigger or use the scheduler.

3.  Click or create an HTTP connection for the action.

4.  In the **Connect to your HTTP Account** window, in the **Authorization Type** field, select
    **OAuth 2.0 Authorization Code** and provide values for the following fields:

    1.  **Authorization URL**: The URL that starts the OAuth 2.0 flow.

    2.  **Authorization URL Query Parameters**: The key-value pairs that appear after the question
        mark in the URL.

        Under the OAuth Authorization Code Grant type, the authorization request sends data as query
        parameters. Composer handles these query parameters automatically, but sometimes additional
        parameters are useful. For example, the Google API needs `access_token=offline` to emit a
        refresh token. Without this parameter, a connection will expire after an hour.

    3.  **Token Exchange URL**: The URL where the authorization code can be exchanged for an access
        token.

        - Optionally, if you click **Add Headers**, provide a value for the following fields:

          - **Key**

          - **Value**

    4.  **Token Refresh URL (Optional)**: The URL where the token can be refreshed. This field is
        applicable only if the application marks the tokens as expired after a certain period of
        time.

        - Optionally, if you click **Add Headers**, provide a value for the following fields:

          - **Key**

          - **Value**

    5.  **Token Revoke URL (Optional)**: The URL where the token can be revoked or removed.

        - Optionally, if you click **Add Headers**, provide a value for the following fields:

          - **Key**

          - **Value**

5.  Click **Next**.  
    The OAuth 2.0 Authorization Code Connection is configured. You can now test the connection.

### Test the Connection

After you establish a connection method, you can test the connection. While Composer tests other
connectors automatically in the background, you must test HTTP Connector. You can decide which page
to use for the test. Testing the connection is important because you cannot edit the connection
later.

To test the connection, provide a value for the following fields:

- **Request Method**

- **Request Path**: The value in this field is relative to the Base URL.

- **Request Headers**

  - **Key**

  - **Value**

- **Request Body**: This option appears when the HTTP method is POST and is the body of the request
  message.

Click **Connect** to test the connection. A message appears to indicate the connection was created
successfully (indicated by a response code of `200`) or that an error occurred.

Note that if the application requires a token exchange to transact data, you need to create a token
for each use case. For example, in Salesforce Marketing Cloud, this is needed because the first step
in Flow 1 will generate a token, which might get invalidated by a similar step in Flow 2.

## HTTP Connector Fields

The following fields are applicable for HTTP Connector:

<table><colgroup><col> <col> <col></colgroup><thead><tr><th>Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><p><strong>Relative URL</strong></p></td><td><p>String</p></td><td><p>URL for the target of the request without considering the base path.</p></td></tr><tr><td><p><strong>Action</strong></p></td><td><p>String</p></td><td><p>The type of request. You must choose between <strong>Request</strong> or <strong>Paginated Request</strong>.</p></td></tr><tr><td><p><strong>HTTP Method</strong></p></td><td><p>String</p></td><td><div><div><p>The HTTP method for the request. The following HTTP methods are available:</p></div><div><ul><li><p><strong>GET</strong>: Retrieves information from the server.</p></li><li><p><strong>POST</strong>: Sends information to the server.</p></li><li><p><strong>PUT</strong>: Updates information in existing records on the server.</p></li><li><p><strong>PATCH</strong>: Updates specific data for existing records on the server.</p></li><li><p><strong>DELETE</strong>: Deletes information in existing records on the server.</p></li></ul></div></div></td></tr><tr><td><p><strong>Path</strong></p></td><td><p>String</p></td><td><p>Identifies the specific resource in the server that you want to access.</p></td></tr><tr><td><p><strong>Headers</strong></p></td><td><p>Object</p></td><td><p>Allows you and the server to pass additional information with an HTTP request or response. Consists of its case-insensitive name (key) followed by a colon, and then followed by its value. If you add headers, you must provide values for the <strong>Key</strong> and <strong>Value</strong> fields.</p><p>If you specify a <strong>POST</strong>, <strong>PUT</strong>, <strong>PATCH</strong>, or <strong>DELETE</strong> method and you add a request body, you must add the <strong>Content-Type: application/json</strong> header. Check the connected API for the desired field name for the <strong>Content-Type: application/json</strong> header since some APIs require different names for this header.</p><p>If the header is <strong>Content-Type: application/json</strong>, then the minimum valid JSON ({}, "") is required as part of the request body. Note that [] is not supported at the root of the request body.</p></td></tr><tr><td><p><strong>Query Parameters</strong></p></td><td><p>Object</p></td><td><p>Query parameters to include in the request. If you add query parameters, you must provide values for the <strong>Key</strong> and <strong>Value</strong> fields.</p></td></tr><tr><td><p><strong>Example Request</strong></p></td><td><p>String</p></td><td><p>An example request in JSON format. If you provide a value for this field, Composer parses the example to deduce its fields. The fields are then available for entering data to configure the request operation. To view the fields Composer deduced from the example, click <strong>Select Additional Fields</strong>. The example JSON value provided in this field <em>must</em> be different than the value provided in the <strong>Example Response</strong> field.</p></td></tr><tr><td><p><strong>Example Response</strong></p></td><td><p>String</p></td><td><p>An example response in JSON format. If you provide a value for this field, Composer parses the example JSON payload and provides data pills that match the JSON fields.</p></td></tr><tr><td><p><strong>Array Path</strong></p></td><td><p>String</p></td><td><p>The path to the JSON array. The value from the <strong>Array Path</strong> field is selected by default, but a different value can be selected from the dropdown. This value only appears if the value in the <strong>Action</strong> field is set to <strong>Paginated Request</strong>.</p></td></tr><tr><td><p><strong>Pagination Type</strong></p></td><td><p>String</p></td><td><div><div><p>The type of pagination for the request. The following Pagination Types are available:</p></div><div><ul><li><p><strong>Link Header</strong>: If this value is selected, provide a value in the <strong>Link Relation</strong> field.</p></li><li><p><strong>Marker</strong>: If this value is selected, provide a value in the following fields:<br></p><div><ul><li><p><strong>Marker Parameter Name</strong></p></li><li><p><strong>Next Marker Expression</strong></p></li></ul></div></li><li><p><strong>Next URL</strong>: If this value is selected, provide a value in the <strong>Next URL Expression</strong> field.</p></li><li><p><strong>Offset</strong>: If this value is selected, provide a value in the <strong>Offset Parameter Name</strong> field.</p></li><li><p><strong>Page Number</strong>: If this value is selected, provide a value in provide a value in the <strong>Page Number Parameter Name</strong> field.</p></li></ul></div></div></td></tr><tr><td><p><strong>Maximum Number of Pages</strong></p></td><td><p>Number</p></td><td><p>The maximum number of pages returned from the API in requests.</p></td></tr></tbody></table>

## Actions

After you connect to a system and define the trigger or configure a scheduler, you define the
actions that the flow performs. For example, you can copy a record between different systems, such
as Workday and Salesforce. The actions you can perform depend on which system you are connected to.

This system provides the following actions:

Request in HTTP

When **Request** is selected in the **Action** field, a request in HTTP returns the fields of the
response payload. A value is required for the following fields:

- **Action**

- **HTTP Method**

- **Path**

- **Example Response**

- Optionally, if you click **Add Query Parameters**, provide a value for the following fields:

  - **Key**

  - **Value**

- Optionally, if you click **Add Headers**, provide a value for the following fields:

  - **Key**

  - **Value**

Paginated Request in HTTP

When **Paginated Request** is selected in the **Action** field, a paginated HTTP request is
initiated. A Paginated Request returns a list of items that subsequent flow steps can use in a For
Each Loop. Composer automatically uses the pagination configuration to fetch data from the API. A
value is required for the following fields:

- **Action**

- **HTTP Method**

- **Path**

- **Example Response**

- **Array Path**

- **Pagination Type**

- Optionally, if you click **Add Query Parameters**, provide a value for the following fields:

  - **Key**

  - **Value**

- Optionally, if you click **Add Headers**, provide a value for the following fields:

  - **Key**

  - **Value**

## See Also

- [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview)

- [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites)

- [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference)

- [Knowledge Articles](https://help.salesforce.com/s/)
