PingOne Platform APIs

Create Store (Salesforce)

 

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.

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.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":"Salesforce". 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 (Salesforce). This sample creates a connector to integrate with Salesforce customer relationship management (CRM) products, such as Sales, Communities, and Chatter.

For a connector with "type":"Salesforce" to integrate with Salesforce Communities, the property ENABLE_COMMUNITIES must be set to true. For a connector with "type":"Salesforce" to integrate with other Salesforce CRM products, the property ENABLE_COMMUNITIES must be set to false or be left out, which then defaults to false.

Headers

Authorization      Bearer {{accessToken}}

Content-Type      application/json

Body

raw ( application/json )

{
    "type": "Salesforce",
    "name": "test",
    "configuration": {
        "FREEZE_USER_FLAG": false,
        "ENABLE_COMMUNITIES": true,
        "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in Salesforce",
        "CREATE_USERS": true,
        "UPDATE_USERS": true,
        "DISABLE_USERS": true,
        "PROVISION_DISABLED_USERS": true,
        "SALESFORCE_DOMAIN": "https://example.com",
        "PROFILE_ID": "fds",
        "ACCOUNT_ID": "fdsf",
        "CLIENT_ID": "fdsfd",
        "CLIENT_SECRET": "fdsafds",
        "OAUTH_ACCESS_TOKEN": "fdsfds",
        "OAUTH_REFRESH_TOKEN": "fdsfdsa"
    },
    "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": "Salesforce",
    "name": "test",
    "configuration": {
        "FREEZE_USER_FLAG": false,
        "ENABLE_COMMUNITIES": true,
        "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in Salesforce",
        "CREATE_USERS": true,
        "UPDATE_USERS": true,
        "DISABLE_USERS": true,
        "PROVISION_DISABLED_USERS": true,
        "SALESFORCE_DOMAIN": "https://example.com",
        "PROFILE_ID": "fds",
        "ACCOUNT_ID": "fdsf",
        "CLIENT_ID": "fdsfd",
        "CLIENT_SECRET": "fdsafds",
        "OAUTH_ACCESS_TOKEN": "fdsfds",
        "OAUTH_REFRESH_TOKEN": "fdsfdsa"
    },
    "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"": ""Salesforce""," + "\n" +
@"    ""name"": ""test""," + "\n" +
@"    ""configuration"": {" + "\n" +
@"        ""FREEZE_USER_FLAG"": false," + "\n" +
@"        ""ENABLE_COMMUNITIES"": true," + "\n" +
@"        ""PERMISSION_SET_MANAGEMENT"": ""Merge with permission sets in Salesforce""," + "\n" +
@"        ""CREATE_USERS"": true," + "\n" +
@"        ""UPDATE_USERS"": true," + "\n" +
@"        ""DISABLE_USERS"": true," + "\n" +
@"        ""PROVISION_DISABLED_USERS"": true," + "\n" +
@"        ""SALESFORCE_DOMAIN"": ""https://example.com""," + "\n" +
@"        ""PROFILE_ID"": ""fds""," + "\n" +
@"        ""ACCOUNT_ID"": ""fdsf""," + "\n" +
@"        ""CLIENT_ID"": ""fdsfd""," + "\n" +
@"        ""CLIENT_SECRET"": ""fdsafds""," + "\n" +
@"        ""OAUTH_ACCESS_TOKEN"": ""fdsfds""," + "\n" +
@"        ""OAUTH_REFRESH_TOKEN"": ""fdsfdsa""" + "\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": "Salesforce",
    "name": "test",
    "configuration": {
        "FREEZE_USER_FLAG": false,
        "ENABLE_COMMUNITIES": true,
        "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in Salesforce",
        "CREATE_USERS": true,
        "UPDATE_USERS": true,
        "DISABLE_USERS": true,
        "PROVISION_DISABLED_USERS": true,
        "SALESFORCE_DOMAIN": "https://example.com",
        "PROFILE_ID": "fds",
        "ACCOUNT_ID": "fdsf",
        "CLIENT_ID": "fdsfd",
        "CLIENT_SECRET": "fdsafds",
        "OAUTH_ACCESS_TOKEN": "fdsfds",
        "OAUTH_REFRESH_TOKEN": "fdsfdsa"
    },
    "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": "Salesforce",
    "name": "test",
    "configuration": {
        "FREEZE_USER_FLAG": false,
        "ENABLE_COMMUNITIES": true,
        "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in Salesforce",
        "CREATE_USERS": true,
        "UPDATE_USERS": true,
        "DISABLE_USERS": true,
        "PROVISION_DISABLED_USERS": true,
        "SALESFORCE_DOMAIN": "https://example.com",
        "PROFILE_ID": "fds",
        "ACCOUNT_ID": "fdsf",
        "CLIENT_ID": "fdsfd",
        "CLIENT_SECRET": "fdsafds",
        "OAUTH_ACCESS_TOKEN": "fdsfds",
        "OAUTH_REFRESH_TOKEN": "fdsfdsa"
    },
    "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\": \"Salesforce\",\n    \"name\": \"test\",\n    \"configuration\": {\n        \"FREEZE_USER_FLAG\": false,\n        \"ENABLE_COMMUNITIES\": true,\n        \"PERMISSION_SET_MANAGEMENT\": \"Merge with permission sets in Salesforce\",\n        \"CREATE_USERS\": true,\n        \"UPDATE_USERS\": true,\n        \"DISABLE_USERS\": true,\n        \"PROVISION_DISABLED_USERS\": true,\n        \"SALESFORCE_DOMAIN\": \"https://example.com\",\n        \"PROFILE_ID\": \"fds\",\n        \"ACCOUNT_ID\": \"fdsf\",\n        \"CLIENT_ID\": \"fdsfd\",\n        \"CLIENT_SECRET\": \"fdsafds\",\n        \"OAUTH_ACCESS_TOKEN\": \"fdsfds\",\n        \"OAUTH_REFRESH_TOKEN\": \"fdsfdsa\"\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": "Salesforce",
    "name": "test",
    "configuration": {
      "FREEZE_USER_FLAG": false,
      "ENABLE_COMMUNITIES": true,
      "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in Salesforce",
      "CREATE_USERS": true,
      "UPDATE_USERS": true,
      "DISABLE_USERS": true,
      "PROVISION_DISABLED_USERS": true,
      "SALESFORCE_DOMAIN": "https://example.com",
      "PROFILE_ID": "fds",
      "ACCOUNT_ID": "fdsf",
      "CLIENT_ID": "fdsfd",
      "CLIENT_SECRET": "fdsafds",
      "OAUTH_ACCESS_TOKEN": "fdsfds",
      "OAUTH_REFRESH_TOKEN": "fdsfdsa"
    },
    "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": "Salesforce",
    "name": "test",
    "configuration": {
      "FREEZE_USER_FLAG": false,
      "ENABLE_COMMUNITIES": true,
      "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in Salesforce",
      "CREATE_USERS": true,
      "UPDATE_USERS": true,
      "DISABLE_USERS": true,
      "PROVISION_DISABLED_USERS": true,
      "SALESFORCE_DOMAIN": "https://example.com",
      "PROFILE_ID": "fds",
      "ACCOUNT_ID": "fdsf",
      "CLIENT_ID": "fdsfd",
      "CLIENT_SECRET": "fdsafds",
      "OAUTH_ACCESS_TOKEN": "fdsfds",
      "OAUTH_REFRESH_TOKEN": "fdsfdsa"
    },
    "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": "Salesforce",
  "name": "test",
  "configuration": {
    "FREEZE_USER_FLAG": False,
    "ENABLE_COMMUNITIES": True,
    "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in Salesforce",
    "CREATE_USERS": True,
    "UPDATE_USERS": True,
    "DISABLE_USERS": True,
    "PROVISION_DISABLED_USERS": True,
    "SALESFORCE_DOMAIN": "https://example.com",
    "PROFILE_ID": "fds",
    "ACCOUNT_ID": "fdsf",
    "CLIENT_ID": "fdsfd",
    "CLIENT_SECRET": "fdsafds",
    "OAUTH_ACCESS_TOKEN": "fdsfds",
    "OAUTH_REFRESH_TOKEN": "fdsfdsa"
  },
  "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": "Salesforce",\n    "name": "test",\n    "configuration": {\n        "FREEZE_USER_FLAG": false,\n        "ENABLE_COMMUNITIES": true,\n        "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in Salesforce",\n        "CREATE_USERS": true,\n        "UPDATE_USERS": true,\n        "DISABLE_USERS": true,\n        "PROVISION_DISABLED_USERS": true,\n        "SALESFORCE_DOMAIN": "https://example.com",\n        "PROFILE_ID": "fds",\n        "ACCOUNT_ID": "fdsf",\n        "CLIENT_ID": "fdsfd",\n        "CLIENT_SECRET": "fdsafds",\n        "OAUTH_ACCESS_TOKEN": "fdsfds",\n        "OAUTH_REFRESH_TOKEN": "fdsfdsa"\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": "Salesforce",
  "name": "test",
  "configuration": {
    "FREEZE_USER_FLAG": false,
    "ENABLE_COMMUNITIES": true,
    "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in Salesforce",
    "CREATE_USERS": true,
    "UPDATE_USERS": true,
    "DISABLE_USERS": true,
    "PROVISION_DISABLED_USERS": true,
    "SALESFORCE_DOMAIN": "https://example.com",
    "PROFILE_ID": "fds",
    "ACCOUNT_ID": "fdsf",
    "CLIENT_ID": "fdsfd",
    "CLIENT_SECRET": "fdsafds",
    "OAUTH_ACCESS_TOKEN": "fdsfds",
    "OAUTH_REFRESH_TOKEN": "fdsfdsa"
  },
  "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\": \"Salesforce\",\n    \"name\": \"test\",\n    \"configuration\": {\n        \"FREEZE_USER_FLAG\": false,\n        \"ENABLE_COMMUNITIES\": true,\n        \"PERMISSION_SET_MANAGEMENT\": \"Merge with permission sets in Salesforce\",\n        \"CREATE_USERS\": true,\n        \"UPDATE_USERS\": true,\n        \"DISABLE_USERS\": true,\n        \"PROVISION_DISABLED_USERS\": true,\n        \"SALESFORCE_DOMAIN\": \"https://example.com\",\n        \"PROFILE_ID\": \"fds\",\n        \"ACCOUNT_ID\": \"fdsf\",\n        \"CLIENT_ID\": \"fdsfd\",\n        \"CLIENT_SECRET\": \"fdsafds\",\n        \"OAUTH_ACCESS_TOKEN\": \"fdsfds\",\n        \"OAUTH_REFRESH_TOKEN\": \"fdsfdsa\"\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": "8305f20e-d0e2-4a92-aa0d-c7af0f88d2d5",
    "environment": {
        "id": "abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
    },
    "createdAt": "2022-11-28T18:12:22.282Z",
    "updatedAt": "2022-11-28T18:12:22.282Z",
    "image": {
        "href": "https://d1oekt4jpdthse.cloudfront.net/branding/market/cb933bfe-8282-405a-a780-0a19b97edc02.png"
    },
    "type": "Salesforce",
    "status": "INACTIVE",
    "configuration": {
        "FREEZE_USER_FLAG": false,
        "ENABLE_COMMUNITIES": true,
        "PERMISSION_SET_MANAGEMENT": "Merge with permission sets in Salesforce",
        "CREATE_USERS": true,
        "UPDATE_USERS": true,
        "DISABLE_USERS": true,
        "PROVISION_DISABLED_USERS": true,
        "SALESFORCE_DOMAIN": "https://example.com",
        "PROFILE_ID": "fds",
        "ACCOUNT_ID": "fdsf",
        "CLIENT_ID": "fdsfd",
        "CLIENT_SECRET": "fdsafds",
        "OAUTH_ACCESS_TOKEN": "fdsfds",
        "OAUTH_REFRESH_TOKEN": "fdsfdsa"
    },
    "name": "test",
    "_links": {
        "self": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/propagation/stores/8305f20e-d0e2-4a92-aa0d-c7af0f88d2d5"
        },
        "update": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/propagation/stores/8305f20e-d0e2-4a92-aa0d-c7af0f88d2d5"
        },
        "delete": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/propagation/stores/8305f20e-d0e2-4a92-aa0d-c7af0f88d2d5"
        }
    }
}