PingOne Platform APIs

Create Store (SalesforceContacts)

 

POST {{apiPath}}/environments/{{envID}}/propagation/stores

The POST {{apiPath}}/environments/{{envID}}/propagation/stores operation adds a new identity store resource to the specified environment resource.

A connector with "type":"SalesforceContacts" supports either Salesforce Leads or Salesforce Contacts. The RECORD_TYPE property defines whether the connector is for LEAD or for CONTACT.

You can create two connectors, one for each RECORD_TYPE, to maintain both Salesforce Leads and Contacts record types.

Prerequisites

Request Model
Property Type Required?

configuration.ACCOUNT_ID

String

Optional

configuration.CLIENT_ID

String

Required

configuration.CLIENT_SECRET

String

Required

configuration.CREATE_NEW_USERS (deprecated)

Boolean

Optional

configuration.CREATE_USERS

Boolean

Optional

configuration.DISABLE_USERS

Boolean

Optional

configuration.ENABLE_COMMUNITIES

Boolean

Required

configuration.FREEZE_USER_FLAG

Boolean

Required

configuration.OAUTH_ACCESS_TOKEN

String

Required

configuration.OAUTH_REFRESH_TOKEN

String

Required

configuration.PERMISSION_SET_MANAGEMENT

String

Required

configuration.PROFILE_ID

String

Optional

configuration.PROVISION_DISABLED_USERS

Boolean

Optional

configuration.RECORD_TYPE

String

Required

configuration.SALESFORCE_DOMAIN

String

Required

configuration.UPDATE_NEW_USERS (deprecated)

Boolean

Optional

configuration.UPDATE_USERS

Boolean

Optional

description

String

Optional

image.href

String

Optional

managed

Boolean

Optional

name

String

Required

status

String

Optional

type

String

Required

This operation sends and returns the connection properties for an identity store with "type":"SalesforceContacts". For information on the available and required keys in the configuration object of the request body, review connectionProfiles[].connectionAttributes[] and attributeMetadata.capabilities[] in the response to POST Identity Propagation Store Metadata (SalesforceContacts).

Headers

Authorization      Bearer {{accessToken}}

Content-Type      application/json

Body

raw ( application/json )

{
    "type": "SalesforceContacts",
    "name": "SalesforceLeadsTest",
    "configuration": {
        "RECORD_TYPE": "Lead",
        "ENABLE_COMMUNITIES": false,
        "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in SalesforceContacts",
        "CREATE_USERS": true,
        "UPDATE_USERS": true,
        "DISABLE_USERS": true,
        "PROVISION_DISABLED_USERS": true,
        "SALESFORCE_DOMAIN": "my.salesforce.com",
        "PROFILE_ID": "yourProfileID",
        "ACCOUNT_ID": "yourAccountID",
        "CLIENT_ID": "yourClientID",
        "CLIENT_SECRET": "yourClientSecret",
        "OAUTH_ACCESS_TOKEN": "yourAccessToken",
        "OAUTH_REFRESH_TOKEN": "yourRefreshToken"
    },
    "image": {
        "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
    }
}

Example Request

  • cURL

  • C#

  • Go

  • HTTP

  • Java

  • jQuery

  • NodeJS

  • Python

  • PHP

  • Ruby

  • Swift

curl --location --globoff '{{apiPath}}/environments/{{envID}}/propagation/stores' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{accessToken}}' \
--data '{
    "type": "SalesforceContacts",
    "name": "SalesforceLeadsTest",
    "configuration": {
        "RECORD_TYPE": "Lead",
        "ENABLE_COMMUNITIES": false,
        "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in SalesforceContacts",
        "CREATE_USERS": true,
        "UPDATE_USERS": true,
        "DISABLE_USERS": true,
        "PROVISION_DISABLED_USERS": true,
        "SALESFORCE_DOMAIN": "my.salesforce.com",
        "PROFILE_ID": "yourProfileID",
        "ACCOUNT_ID": "yourAccountID",
        "CLIENT_ID": "yourClientID",
        "CLIENT_SECRET": "yourClientSecret",
        "OAUTH_ACCESS_TOKEN": "yourAccessToken",
        "OAUTH_REFRESH_TOKEN": "yourRefreshToken"
    },
    "image": {
        "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
    }
}'
var options = new RestClientOptions("{{apiPath}}/environments/{{envID}}/propagation/stores")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Post);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Bearer {{accessToken}}");
var body = @"{" + "\n" +
@"    ""type"": ""SalesforceContacts""," + "\n" +
@"    ""name"": ""SalesforceLeadsTest""," + "\n" +
@"    ""configuration"": {" + "\n" +
@"        ""RECORD_TYPE"": ""Lead""," + "\n" +
@"        ""ENABLE_COMMUNITIES"": false," + "\n" +
@"        ""PERMISSION_SET_MANAGEMENT"": ""Merge with permission sets in SalesforceContacts""," + "\n" +
@"        ""CREATE_USERS"": true," + "\n" +
@"        ""UPDATE_USERS"": true," + "\n" +
@"        ""DISABLE_USERS"": true," + "\n" +
@"        ""PROVISION_DISABLED_USERS"": true," + "\n" +
@"        ""SALESFORCE_DOMAIN"": ""my.salesforce.com""," + "\n" +
@"        ""PROFILE_ID"": ""yourProfileID""," + "\n" +
@"        ""ACCOUNT_ID"": ""yourAccountID""," + "\n" +
@"        ""CLIENT_ID"": ""yourClientID""," + "\n" +
@"        ""CLIENT_SECRET"": ""yourClientSecret""," + "\n" +
@"        ""OAUTH_ACCESS_TOKEN"": ""yourAccessToken""," + "\n" +
@"        ""OAUTH_REFRESH_TOKEN"": ""yourRefreshToken""" + "\n" +
@"    }," + "\n" +
@"    ""image"": {" + "\n" +
@"        ""href"": ""https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png""" + "\n" +
@"    }" + "\n" +
@"}";
request.AddStringBody(body, DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io"
)

func main() {

  url := "{{apiPath}}/environments/{{envID}}/propagation/stores"
  method := "POST"

  payload := strings.NewReader(`{
    "type": "SalesforceContacts",
    "name": "SalesforceLeadsTest",
    "configuration": {
        "RECORD_TYPE": "Lead",
        "ENABLE_COMMUNITIES": false,
        "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in SalesforceContacts",
        "CREATE_USERS": true,
        "UPDATE_USERS": true,
        "DISABLE_USERS": true,
        "PROVISION_DISABLED_USERS": true,
        "SALESFORCE_DOMAIN": "my.salesforce.com",
        "PROFILE_ID": "yourProfileID",
        "ACCOUNT_ID": "yourAccountID",
        "CLIENT_ID": "yourClientID",
        "CLIENT_SECRET": "yourClientSecret",
        "OAUTH_ACCESS_TOKEN": "yourAccessToken",
        "OAUTH_REFRESH_TOKEN": "yourRefreshToken"
    },
    "image": {
        "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
    }
}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Content-Type", "application/json")
  req.Header.Add("Authorization", "Bearer {{accessToken}}")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
POST /environments/{{envID}}/propagation/stores HTTP/1.1
Host: {{apiPath}}
Content-Type: application/json
Authorization: Bearer {{accessToken}}

{
    "type": "SalesforceContacts",
    "name": "SalesforceLeadsTest",
    "configuration": {
        "RECORD_TYPE": "Lead",
        "ENABLE_COMMUNITIES": false,
        "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in SalesforceContacts",
        "CREATE_USERS": true,
        "UPDATE_USERS": true,
        "DISABLE_USERS": true,
        "PROVISION_DISABLED_USERS": true,
        "SALESFORCE_DOMAIN": "my.salesforce.com",
        "PROFILE_ID": "yourProfileID",
        "ACCOUNT_ID": "yourAccountID",
        "CLIENT_ID": "yourClientID",
        "CLIENT_SECRET": "yourClientSecret",
        "OAUTH_ACCESS_TOKEN": "yourAccessToken",
        "OAUTH_REFRESH_TOKEN": "yourRefreshToken"
    },
    "image": {
        "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
    }
}
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n    \"type\": \"SalesforceContacts\",\n    \"name\": \"SalesforceLeadsTest\",\n    \"configuration\": {\n        \"RECORD_TYPE\": \"Lead\",\n        \"ENABLE_COMMUNITIES\": false,\n        \"PERMISSION_SET_MANAGEMENT\": \"Merge with permission sets in SalesforceContacts\",\n        \"CREATE_USERS\": true,\n        \"UPDATE_USERS\": true,\n        \"DISABLE_USERS\": true,\n        \"PROVISION_DISABLED_USERS\": true,\n        \"SALESFORCE_DOMAIN\": \"my.salesforce.com\",\n        \"PROFILE_ID\": \"yourProfileID\",\n        \"ACCOUNT_ID\": \"yourAccountID\",\n        \"CLIENT_ID\": \"yourClientID\",\n        \"CLIENT_SECRET\": \"yourClientSecret\",\n        \"OAUTH_ACCESS_TOKEN\": \"yourAccessToken\",\n        \"OAUTH_REFRESH_TOKEN\": \"yourRefreshToken\"\n    },\n    \"image\": {\n        \"href\": \"https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png\"\n    }\n}");
Request request = new Request.Builder()
  .url("{{apiPath}}/environments/{{envID}}/propagation/stores")
  .method("POST", body)
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "Bearer {{accessToken}}")
  .build();
Response response = client.newCall(request).execute();
var settings = {
  "url": "{{apiPath}}/environments/{{envID}}/propagation/stores",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/json",
    "Authorization": "Bearer {{accessToken}}"
  },
  "data": JSON.stringify({
    "type": "SalesforceContacts",
    "name": "SalesforceLeadsTest",
    "configuration": {
      "RECORD_TYPE": "Lead",
      "ENABLE_COMMUNITIES": false,
      "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in SalesforceContacts",
      "CREATE_USERS": true,
      "UPDATE_USERS": true,
      "DISABLE_USERS": true,
      "PROVISION_DISABLED_USERS": true,
      "SALESFORCE_DOMAIN": "my.salesforce.com",
      "PROFILE_ID": "yourProfileID",
      "ACCOUNT_ID": "yourAccountID",
      "CLIENT_ID": "yourClientID",
      "CLIENT_SECRET": "yourClientSecret",
      "OAUTH_ACCESS_TOKEN": "yourAccessToken",
      "OAUTH_REFRESH_TOKEN": "yourRefreshToken"
    },
    "image": {
      "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
    }
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var request = require('request');
var options = {
  'method': 'POST',
  'url': '{{apiPath}}/environments/{{envID}}/propagation/stores',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer {{accessToken}}'
  },
  body: JSON.stringify({
    "type": "SalesforceContacts",
    "name": "SalesforceLeadsTest",
    "configuration": {
      "RECORD_TYPE": "Lead",
      "ENABLE_COMMUNITIES": false,
      "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in SalesforceContacts",
      "CREATE_USERS": true,
      "UPDATE_USERS": true,
      "DISABLE_USERS": true,
      "PROVISION_DISABLED_USERS": true,
      "SALESFORCE_DOMAIN": "my.salesforce.com",
      "PROFILE_ID": "yourProfileID",
      "ACCOUNT_ID": "yourAccountID",
      "CLIENT_ID": "yourClientID",
      "CLIENT_SECRET": "yourClientSecret",
      "OAUTH_ACCESS_TOKEN": "yourAccessToken",
      "OAUTH_REFRESH_TOKEN": "yourRefreshToken"
    },
    "image": {
      "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
    }
  })

};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
import requests
import json

url = "{{apiPath}}/environments/{{envID}}/propagation/stores"

payload = json.dumps({
  "type": "SalesforceContacts",
  "name": "SalesforceLeadsTest",
  "configuration": {
    "RECORD_TYPE": "Lead",
    "ENABLE_COMMUNITIES": False,
    "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in SalesforceContacts",
    "CREATE_USERS": True,
    "UPDATE_USERS": True,
    "DISABLE_USERS": True,
    "PROVISION_DISABLED_USERS": True,
    "SALESFORCE_DOMAIN": "my.salesforce.com",
    "PROFILE_ID": "yourProfileID",
    "ACCOUNT_ID": "yourAccountID",
    "CLIENT_ID": "yourClientID",
    "CLIENT_SECRET": "yourClientSecret",
    "OAUTH_ACCESS_TOKEN": "yourAccessToken",
    "OAUTH_REFRESH_TOKEN": "yourRefreshToken"
  },
  "image": {
    "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
  }
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer {{accessToken}}'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{apiPath}}/environments/{{envID}}/propagation/stores');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer {{accessToken}}'
));
$request->setBody('{\n    "type": "SalesforceContacts",\n    "name": "SalesforceLeadsTest",\n    "configuration": {\n        "RECORD_TYPE": "Lead",\n        "ENABLE_COMMUNITIES": false,\n        "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in SalesforceContacts",\n        "CREATE_USERS": true,\n        "UPDATE_USERS": true,\n        "DISABLE_USERS": true,\n        "PROVISION_DISABLED_USERS": true,\n        "SALESFORCE_DOMAIN": "my.salesforce.com",\n        "PROFILE_ID": "yourProfileID",\n        "ACCOUNT_ID": "yourAccountID",\n        "CLIENT_ID": "yourClientID",\n        "CLIENT_SECRET": "yourClientSecret",\n        "OAUTH_ACCESS_TOKEN": "yourAccessToken",\n        "OAUTH_REFRESH_TOKEN": "yourRefreshToken"\n    },\n    "image": {\n        "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"\n    }\n}');
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
require "uri"
require "json"
require "net/http"

url = URI("{{apiPath}}/environments/{{envID}}/propagation/stores")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer {{accessToken}}"
request.body = JSON.dump({
  "type": "SalesforceContacts",
  "name": "SalesforceLeadsTest",
  "configuration": {
    "RECORD_TYPE": "Lead",
    "ENABLE_COMMUNITIES": false,
    "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in SalesforceContacts",
    "CREATE_USERS": true,
    "UPDATE_USERS": true,
    "DISABLE_USERS": true,
    "PROVISION_DISABLED_USERS": true,
    "SALESFORCE_DOMAIN": "my.salesforce.com",
    "PROFILE_ID": "yourProfileID",
    "ACCOUNT_ID": "yourAccountID",
    "CLIENT_ID": "yourClientID",
    "CLIENT_SECRET": "yourClientSecret",
    "OAUTH_ACCESS_TOKEN": "yourAccessToken",
    "OAUTH_REFRESH_TOKEN": "yourRefreshToken"
  },
  "image": {
    "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
  }
})

response = http.request(request)
puts response.read_body
let parameters = "{\n    \"type\": \"SalesforceContacts\",\n    \"name\": \"SalesforceLeadsTest\",\n    \"configuration\": {\n        \"RECORD_TYPE\": \"Lead\",\n        \"ENABLE_COMMUNITIES\": false,\n        \"PERMISSION_SET_MANAGEMENT\": \"Merge with permission sets in SalesforceContacts\",\n        \"CREATE_USERS\": true,\n        \"UPDATE_USERS\": true,\n        \"DISABLE_USERS\": true,\n        \"PROVISION_DISABLED_USERS\": true,\n        \"SALESFORCE_DOMAIN\": \"my.salesforce.com\",\n        \"PROFILE_ID\": \"yourProfileID\",\n        \"ACCOUNT_ID\": \"yourAccountID\",\n        \"CLIENT_ID\": \"yourClientID\",\n        \"CLIENT_SECRET\": \"yourClientSecret\",\n        \"OAUTH_ACCESS_TOKEN\": \"yourAccessToken\",\n        \"OAUTH_REFRESH_TOKEN\": \"yourRefreshToken\"\n    },\n    \"image\": {\n        \"href\": \"https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png\"\n    }\n}"
let postData = parameters.data(using: .utf8)

var request = URLRequest(url: URL(string: "{{apiPath}}/environments/{{envID}}/propagation/stores")!,timeoutInterval: Double.infinity)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("Bearer {{accessToken}}", forHTTPHeaderField: "Authorization")

request.httpMethod = "POST"
request.httpBody = postData

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
}

task.resume()

Example Response

201 Created

{
    "id": "c70882a9-ed88-47b2-a6f4-26fe749d7e79",
    "environment": {
        "id": "abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
    },
    "createdAt": "2022-11-28T18:30:31.023Z",
    "updatedAt": "2022-11-28T18:30:31.023Z",
    "image": {
        "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
    },
    "type": "SalesforceContacts",
    "status": "INACTIVE",
    "configuration": {
        "RECORD_TYPE": "Lead",
        "ENABLE_COMMUNITIES": false,
        "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in SalesforceContacts",
        "CREATE_USERS": true,
        "UPDATE_USERS": true,
        "DISABLE_USERS": true,
        "PROVISION_DISABLED_USERS": true,
        "SALESFORCE_DOMAIN": "my.salesforce.com",
        "PROFILE_ID": "yourProfileID",
        "ACCOUNT_ID": "yourAccountID",
        "CLIENT_ID": "yourClientID",
        "CLIENT_SECRET": "yourClientSecret",
        "OAUTH_ACCESS_TOKEN": "yourAccessToken",
        "OAUTH_REFRESH_TOKEN": "yourRefreshToken"
    },
    "name": "SalesforceLeadsTest",
    "_links": {
        "self": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/propagation/stores/c70882a9-ed88-47b2-a6f4-26fe749d7e79"
        },
        "update": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/propagation/stores/c70882a9-ed88-47b2-a6f4-26fe749d7e79"
        },
        "delete": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/propagation/stores/c70882a9-ed88-47b2-a6f4-26fe749d7e79"
        }
    }
}