CreateConnectorProfile
Creates a new connector profile associated with your AWS account. There is a soft quota of 100 connector profiles per AWS account. If you need more connector profiles than this quota allows, you can submit a request to the Amazon AppFlow team through the Amazon AppFlow support channel. In each connector profile that you create, you can provide the credentials and properties for only one connector.
Request Syntax
POST /create-connector-profile HTTP/1.1
Content-type: application/json
{
"clientToken": "string
",
"connectionMode": "string
",
"connectorLabel": "string
",
"connectorProfileConfig": {
"connectorProfileCredentials": {
"Amplitude": {
"apiKey": "string
",
"secretKey": "string
"
},
"CustomConnector": {
"apiKey": {
"apiKey": "string
",
"apiSecretKey": "string
"
},
"authenticationType": "string
",
"basic": {
"password": "string
",
"username": "string
"
},
"custom": {
"credentialsMap": {
"string
" : "string
"
},
"customAuthenticationType": "string
"
},
"oauth2": {
"accessToken": "string
",
"clientId": "string
",
"clientSecret": "string
",
"oAuthRequest": {
"authCode": "string
",
"redirectUri": "string
"
},
"refreshToken": "string
"
}
},
"Datadog": {
"apiKey": "string
",
"applicationKey": "string
"
},
"Dynatrace": {
"apiToken": "string
"
},
"GoogleAnalytics": {
"accessToken": "string
",
"clientId": "string
",
"clientSecret": "string
",
"oAuthRequest": {
"authCode": "string
",
"redirectUri": "string
"
},
"refreshToken": "string
"
},
"Honeycode": {
"accessToken": "string
",
"oAuthRequest": {
"authCode": "string
",
"redirectUri": "string
"
},
"refreshToken": "string
"
},
"InforNexus": {
"accessKeyId": "string
",
"datakey": "string
",
"secretAccessKey": "string
",
"userId": "string
"
},
"Marketo": {
"accessToken": "string
",
"clientId": "string
",
"clientSecret": "string
",
"oAuthRequest": {
"authCode": "string
",
"redirectUri": "string
"
}
},
"Pardot": {
"accessToken": "string
",
"clientCredentialsArn": "string
",
"oAuthRequest": {
"authCode": "string
",
"redirectUri": "string
"
},
"refreshToken": "string
"
},
"Redshift": {
"password": "string
",
"username": "string
"
},
"Salesforce": {
"accessToken": "string
",
"clientCredentialsArn": "string
",
"jwtToken": "string
",
"oAuth2GrantType": "string
",
"oAuthRequest": {
"authCode": "string
",
"redirectUri": "string
"
},
"refreshToken": "string
"
},
"SAPOData": {
"basicAuthCredentials": {
"password": "string
",
"username": "string
"
},
"oAuthCredentials": {
"accessToken": "string
",
"clientId": "string
",
"clientSecret": "string
",
"oAuthRequest": {
"authCode": "string
",
"redirectUri": "string
"
},
"refreshToken": "string
"
}
},
"ServiceNow": {
"oAuth2Credentials": {
"accessToken": "string
",
"clientId": "string
",
"clientSecret": "string
",
"oAuthRequest": {
"authCode": "string
",
"redirectUri": "string
"
},
"refreshToken": "string
"
},
"password": "string
",
"username": "string
"
},
"Singular": {
"apiKey": "string
"
},
"Slack": {
"accessToken": "string
",
"clientId": "string
",
"clientSecret": "string
",
"oAuthRequest": {
"authCode": "string
",
"redirectUri": "string
"
}
},
"Snowflake": {
"password": "string
",
"username": "string
"
},
"Trendmicro": {
"apiSecretKey": "string
"
},
"Veeva": {
"password": "string
",
"username": "string
"
},
"Zendesk": {
"accessToken": "string
",
"clientId": "string
",
"clientSecret": "string
",
"oAuthRequest": {
"authCode": "string
",
"redirectUri": "string
"
}
}
},
"connectorProfileProperties": {
"Amplitude": {
},
"CustomConnector": {
"oAuth2Properties": {
"oAuth2GrantType": "string
",
"tokenUrl": "string
",
"tokenUrlCustomProperties": {
"string
" : "string
"
}
},
"profileProperties": {
"string
" : "string
"
}
},
"Datadog": {
"instanceUrl": "string
"
},
"Dynatrace": {
"instanceUrl": "string
"
},
"GoogleAnalytics": {
},
"Honeycode": {
},
"InforNexus": {
"instanceUrl": "string
"
},
"Marketo": {
"instanceUrl": "string
"
},
"Pardot": {
"businessUnitId": "string
",
"instanceUrl": "string
",
"isSandboxEnvironment": boolean
},
"Redshift": {
"bucketName": "string
",
"bucketPrefix": "string
",
"clusterIdentifier": "string
",
"dataApiRoleArn": "string
",
"databaseName": "string
",
"databaseUrl": "string
",
"isRedshiftServerless": boolean
,
"roleArn": "string
",
"workgroupName": "string
"
},
"Salesforce": {
"instanceUrl": "string
",
"isSandboxEnvironment": boolean
,
"usePrivateLinkForMetadataAndAuthorization": boolean
},
"SAPOData": {
"applicationHostUrl": "string
",
"applicationServicePath": "string
",
"clientNumber": "string
",
"disableSSO": boolean
,
"logonLanguage": "string
",
"oAuthProperties": {
"authCodeUrl": "string
",
"oAuthScopes": [ "string
" ],
"tokenUrl": "string
"
},
"portNumber": number
,
"privateLinkServiceName": "string
"
},
"ServiceNow": {
"instanceUrl": "string
"
},
"Singular": {
},
"Slack": {
"instanceUrl": "string
"
},
"Snowflake": {
"accountName": "string
",
"bucketName": "string
",
"bucketPrefix": "string
",
"privateLinkServiceName": "string
",
"region": "string
",
"stage": "string
",
"warehouse": "string
"
},
"Trendmicro": {
},
"Veeva": {
"instanceUrl": "string
"
},
"Zendesk": {
"instanceUrl": "string
"
}
}
},
"connectorProfileName": "string
",
"connectorType": "string
",
"kmsArn": "string
"
}
URI Request Parameters
The request does not use any URI parameters.
Request Body
The request accepts the following data in JSON format.
- clientToken
-
The
clientToken
parameter is an idempotency token. It ensures that yourCreateConnectorProfile
request completes only once. You choose the value to pass. For example, if you don't receive a response from your request, you can safely retry the request with the sameclientToken
parameter value.If you omit a
clientToken
value, the AWS SDK that you are using inserts a value for you. This way, the SDK can safely retry requests multiple times after a network error. You must provide your own value for other use cases.If you specify input parameters that differ from your first request, an error occurs. If you use a different value for
clientToken
, Amazon AppFlow considers it a new call toCreateConnectorProfile
. The token is active for 8 hours.Type: String
Length Constraints: Minimum length of 1. Maximum length of 256.
Pattern:
[ -~]+
Required: No
- connectionMode
-
Indicates the connection mode and specifies whether it is public or private. Private flows use AWS PrivateLink to route data over AWS infrastructure without exposing it to the public internet.
Type: String
Valid Values:
Public | Private
Required: Yes
- connectorLabel
-
The label of the connector. The label is unique for each
ConnectorRegistration
in your AWS account. Only needed if calling for CUSTOMCONNECTOR connector type/.Type: String
Length Constraints: Maximum length of 256.
Pattern:
[a-zA-Z0-9][\w!@#.-]+
Required: No
- connectorProfileConfig
-
Defines the connector-specific configuration and credentials.
Type: ConnectorProfileConfig object
Required: Yes
- connectorProfileName
-
The name of the connector profile. The name is unique for each
ConnectorProfile
in your AWS account.Type: String
Length Constraints: Maximum length of 256.
Pattern:
[\w/!@#+=.-]+
Required: Yes
- connectorType
-
The type of connector, such as Salesforce, Amplitude, and so on.
Type: String
Valid Values:
Salesforce | Singular | Slack | Redshift | S3 | Marketo | Googleanalytics | Zendesk | Servicenow | Datadog | Trendmicro | Snowflake | Dynatrace | Infornexus | Amplitude | Veeva | EventBridge | LookoutMetrics | Upsolver | Honeycode | CustomerProfiles | SAPOData | CustomConnector | Pardot
Required: Yes
- kmsArn
-
The ARN (Amazon Resource Name) of the Key Management Service (KMS) key you provide for encryption. This is required if you do not want to use the Amazon AppFlow-managed KMS key. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow-managed KMS key.
Type: String
Length Constraints: Minimum length of 20. Maximum length of 2048.
Pattern:
arn:aws:kms:.*:[0-9]+:.*
Required: No
Response Syntax
HTTP/1.1 200
Content-type: application/json
{
"connectorProfileArn": "string"
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- connectorProfileArn
-
The Amazon Resource Name (ARN) of the connector profile.
Type: String
Length Constraints: Maximum length of 512.
Pattern:
arn:aws:appflow:.*:[0-9]+:.*
Errors
For information about the errors that are common to all actions, see Common Errors.
- ConflictException
-
There was a conflict when processing the request (for example, a flow with the given name already exists within the account. Check for conflicting resource names and try again.
HTTP Status Code: 409
- ConnectorAuthenticationException
-
An error occurred when authenticating with the connector endpoint.
HTTP Status Code: 401
- InternalServerException
-
An internal service error occurred during the processing of your request. Try again later.
HTTP Status Code: 500
- ServiceQuotaExceededException
-
The request would cause a service quota (such as the number of flows) to be exceeded.
HTTP Status Code: 402
- ValidationException
-
The request has invalid or missing parameters.
HTTP Status Code: 400
Examples
CustomConnector
This example shows a sample request for the CreateConnectorProfile
API
(without OAuth) and a sample response.
Sample Request
{
"connectorProfileName": "Connector_Profile_Name_Value",
"kmsArn": null,
"connectorType": "CUSTOMCONNECTOR",
"connectorLabel": "MyCustomConnector",
"connectionMode": "Public",
"connectorProfileConfig":
{
"connectorProfileProperties":
{
"salesforce":
{
"instanceUrl": "InstanceUrl_value",
"isSandboxEnvironment": false
}
},
"connectorProfileCredentials":
{
"salesforce":
{
"accessToken": "<AccessToken>",
"refreshToken": "<RefreshToken>",
"oauthRequest":
{
"authCode": null,
"redirectUri": null
}
}
}
}
}
Sample Response
{
"connectorProfileArn": "arn:aws:appflow:region:<AccountId>:connectorprofile/Connector_Profile_Name"
}
Salesforce without OAuth
This example shows a sample request for the CreateConnectorProfile
API
(without OAuth) and a sample response.
Sample Request
{
"connectorProfileName": "Connector_Profile_Name_Value",
"kmsArn": null,
"connectorType": "Salesforce",
"connectorLabel": "Salesforce",
"connectionMode": "Public",
"connectorProfileConfig": {
"connectorProfileProperties": {
"salesforce": {
"instanceUrl": "InstanceUrl_value",
"isSandboxEnvironment": false
}
},
"connectorProfileCredentials": {
"salesforce": {
"accessToken": "<AccessToken>",
"refreshToken": "<RefreshToken>",
"oauthRequest": {
"authCode": null,
"redirectUri": null
}
}
}
}
}
Sample Response
{
"connectorProfileArn": "arn:aws:appflow:region:<AccountId>:connectorprofile/Connector_Profile_Name"
}
Salesforce with OAuth
These examples show a request with OAuth and a sample response.
Sample Request
{
"connectorProfileName": "connector-profile-name_value",
"kmsArn": null,
"connectorType": "Salesforce",
"connectionMode": "Public",
"connectorProfileConfig": {
"connectorProfileProperties": {
"salesforce": {
"isSandboxEnvironment": false
}
},
"connectorProfileCredentials": {
"salesforce": {
"oauthRequest": {
"authCode": "<AuthCode>",
"redirectUri": "redirectUri"
}
}
}
}
}
Sample Response
{
"connectorProfileArn": "arn:aws:appflow:region:<AccountId>:connectorprofile/connector-profile-name"
}
Zendesk
This example shows a sample request and response for the
CreateConnectorProfile
API using Zendesk.
Sample Request
{
"connectorProfileName": "connector-profile-name",
"connectorType": "Zendesk",
"connectionMode": "Public",
"connectorProfileConfig": {
"connectorProfileProperties": {
"zendesk": {
"instanceUrl": "Zendesk_Url"
}
},
"connectorProfileCredentials": {
"zendesk": {
"clientId": "aws_integration_to_zendesk",
"clientSecret": "<ClientSecret>",
"accessToken": "<AccessToken>",
"oauthRequest": {
"authCode": null,
"redirectUri": null
}
}
}
}
}
Sample Response
{
"connectorProfileArn": "arn:aws:appflow:region:<AccountId>:connectorprofile/connector-profile-name"
}
Google Analytics
This example shows a sample request and response for the
CreateConnectorProfile
API using Google Analytics.
Sample Request
{
"connectorProfileName": "connector-profile-name",
"connectorType": "Googleanalytics",
"connectionMode": "Public",
"connectorProfileConfig": {
"connectorProfileProperties": {
"googleAnalytics": {}
},
"connectorProfileCredentials": {
"googleAnalytics": {
"clientId": "<ClientId>",
"clientSecret": "<ClientSecret>",
"accessToken": "<AccessToken>",
"refreshToken": "<RefreshToken>",
"oauthRequest": {
"authCode": null,
"redirectUri": null
}
}
}
}
}
{ "connectorProfileArn": "arn:aws:appflow:region:<AccountId>:connectorprofile/connector-profile-name" }
Marketo
This example shows a sample request and response for the
CreateConnectorProfile
API using Marketo.
Sample Request
{
"connectorProfileName": "Connector-profile-new",
"connectorType": "Marketo",
"connectionMode": "Public",
"connectorProfileConfig": {
"connectorProfileProperties": {
"marketo": {
"instanceUrl": "Marketo_Url"
}
},
"connectorProfileCredentials": {
"marketo": {
"clientId": "<ClientId>>",
"clientSecret": "<ClientSecret>",
"accessToken": "<AccessToken>",
"oauthRequest": {
"authCode": null,
"redirectUri": null
}
}
}
}
}
Sample Response
{
"connectorProfileArn": "arn:aws:appflow:region:<AccountId>:connectorprofile/Connector-profile-new"
}
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: