Create DaVinci Flow
POST {{apiPath}}/environments/{{envID}}/flows
The POST {{apiPath}}/environments/{{envID}}/flows endpoint when used with a Content-Type header value of application/json creates a new DaVinci flow.
Request Model
Refer to the DaVinci Admin Flows data model for full property descriptions.
| Property | Type | Required? |
|---|---|---|
|
String |
Optional |
|
Array[object] |
Optional |
|
String |
Optional |
|
Integer |
Optional |
|
String |
Optional |
|
Boolean |
Optional |
|
Object |
Optional |
|
Array[object] |
Optional |
|
String |
Required |
|
Object |
Optional |
|
Integer |
Optional |
|
Object |
Optional |
|
Object |
Optional |
|
String |
Optional |
Flow settings properties
The following table lists the supported flow settings properties that can be used in the settings property.
| Property | Type | Required? |
|---|---|---|
|
String |
Optional |
|
String |
Optional |
|
Array |
Optional |
|
String |
Optional |
|
Boolean |
Optional |
|
String |
Optional |
|
String |
Optional |
|
String |
Optional |
|
Boolean |
Optional |
|
Number |
Optional |
|
Number |
Optional |
|
String |
Optional |
|
String |
Optional |
|
Array |
Optional |
|
String |
Optional |
|
Boolean |
Optional |
|
Boolean |
Optional |
|
Boolean |
Optional |
|
Array |
Optional |
|
Boolean |
Optional |
|
Boolean |
Optional |
|
Boolean |
Optional |
|
Boolean |
Optional |
Body
raw ( application/json )
{
"name": "DaV-Flow_{{$timestamp}}",
"description": "This is a demo flow",
"color": "#00FF00",
"graphData": {
"elements": {
"nodes": [
{
"data": {
"id": "8bnj41592a",
"nodeType": "CONNECTION",
"connectionId": "94141bf2f1b9b59a5f5365ff135e02bb",
"connectorId": "pingOneSSOConnector",
"name": "PingOne",
"label": "PingOne",
"status": "configured",
"capabilityName": "userLookup",
"type": "action",
"properties": {
"additionalUserProperties": {
"value": []
},
"username": {
"value": "[\n {\n \"children\": [\n {\n \"text\": \"5282e30d-6e05-499c-ae68-0069fba776f1\"\n }\n ]\n }\n]"
},
"population": {
"value": "c9f3fb3f-11e9-4eb0-b4ba-9fb7789a8418"
},
"userIdentifierForFindUser": {
"value": "[\n {\n \"children\": [\n {\n \"text\": \"5282e30d-6e05-499c-ae68-0069fba776f1\"\n }\n ]\n }\n]"
}
}
},
"position": {
"x": 420,
"y": 360
},
"group": "nodes",
"removed": false,
"selected": false,
"selectable": true,
"locked": false,
"grabbable": true,
"pannable": false,
"classes": ""
}
]
},
"data": {},
"zoomingEnabled": true,
"userZoomingEnabled": true,
"zoom": 1,
"minZoom": 1e-50,
"maxZoom": 1e+50,
"panningEnabled": true,
"userPanningEnabled": true,
"pan": {
"x": 0,
"y": 0
},
"boxSelectionEnabled": true,
"renderer": {
"name": "null"
}
},
"settings": {
"csp": "worker-src 'self' blob:; script-src 'self' https://cdn.jsdelivr.net https://code.jquery.com https://devsdk.singularkey.com http://cdnjs.cloudflare.com 'unsafe-inline' 'unsafe-eval';",
"intermediateLoadingScreenCSS": "",
"intermediateLoadingScreenHTML": "",
"logLevel": 2
// "pingOneFlow": true
},
"inputSchema": [
{
"description": "",
"preferredControlType": "textField",
"preferredDataType": "object",
"propertyName": "flowParameters",
"required": false
}
],
"outputSchema": {
"output": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"trigger": {
"type": "AUTHENTICATION"
}
}
Example Request
-
cURL
-
C#
-
Go
-
HTTP
-
Java
-
jQuery
-
NodeJS
-
Python
-
PHP
-
Ruby
-
Swift
curl --location --globoff '{{apiPath}}/environments/{{envID}}/flows' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{accessToken}}' \
--data '{
"name": "DaV-Flow_{{$timestamp}}",
"description": "This is a demo flow",
"color": "#00FF00",
"graphData": {
"elements": {
"nodes": [
{
"data": {
"id": "8bnj41592a",
"nodeType": "CONNECTION",
"connectionId": "94141bf2f1b9b59a5f5365ff135e02bb",
"connectorId": "pingOneSSOConnector",
"name": "PingOne",
"label": "PingOne",
"status": "configured",
"capabilityName": "userLookup",
"type": "action",
"properties": {
"additionalUserProperties": {
"value": []
},
"username": {
"value": "[\n {\n \"children\": [\n {\n \"text\": \"5282e30d-6e05-499c-ae68-0069fba776f1\"\n }\n ]\n }\n]"
},
"population": {
"value": "c9f3fb3f-11e9-4eb0-b4ba-9fb7789a8418"
},
"userIdentifierForFindUser": {
"value": "[\n {\n \"children\": [\n {\n \"text\": \"5282e30d-6e05-499c-ae68-0069fba776f1\"\n }\n ]\n }\n]"
}
}
},
"position": {
"x": 420,
"y": 360
},
"group": "nodes",
"removed": false,
"selected": false,
"selectable": true,
"locked": false,
"grabbable": true,
"pannable": false,
"classes": ""
}
]
},
"data": {},
"zoomingEnabled": true,
"userZoomingEnabled": true,
"zoom": 1,
"minZoom": 1e-50,
"maxZoom": 1e+50,
"panningEnabled": true,
"userPanningEnabled": true,
"pan": {
"x": 0,
"y": 0
},
"boxSelectionEnabled": true,
"renderer": {
"name": "null"
}
},
"settings": {
"csp": "worker-src '\''self'\'' blob:; script-src '\''self'\'' https://cdn.jsdelivr.net https://code.jquery.com https://devsdk.singularkey.com http://cdnjs.cloudflare.com '\''unsafe-inline'\'' '\''unsafe-eval'\'';",
"intermediateLoadingScreenCSS": "",
"intermediateLoadingScreenHTML": "",
"logLevel": 2
// "pingOneFlow": true
},
"inputSchema": [
{
"description": "",
"preferredControlType": "textField",
"preferredDataType": "object",
"propertyName": "flowParameters",
"required": false
}
],
"outputSchema": {
"output": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"trigger": {
"type": "AUTHENTICATION"
}
}'
var options = new RestClientOptions("{{apiPath}}/environments/{{envID}}/flows")
{
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" +
@" ""name"": ""DaV-Flow_{{$timestamp}}""," + "\n" +
@" ""description"": ""This is a demo flow""," + "\n" +
@" ""color"": ""#00FF00""," + "\n" +
@" ""graphData"": {" + "\n" +
@" ""elements"": {" + "\n" +
@" ""nodes"": [" + "\n" +
@" {" + "\n" +
@" ""data"": {" + "\n" +
@" ""id"": ""8bnj41592a""," + "\n" +
@" ""nodeType"": ""CONNECTION""," + "\n" +
@" ""connectionId"": ""94141bf2f1b9b59a5f5365ff135e02bb""," + "\n" +
@" ""connectorId"": ""pingOneSSOConnector""," + "\n" +
@" ""name"": ""PingOne""," + "\n" +
@" ""label"": ""PingOne""," + "\n" +
@" ""status"": ""configured""," + "\n" +
@" ""capabilityName"": ""userLookup""," + "\n" +
@" ""type"": ""action""," + "\n" +
@" ""properties"": {" + "\n" +
@" ""additionalUserProperties"": {" + "\n" +
@" ""value"": []" + "\n" +
@" }," + "\n" +
@" ""username"": {" + "\n" +
@" ""value"": ""[\n {\n \""children\"": [\n {\n \""text\"": \""5282e30d-6e05-499c-ae68-0069fba776f1\""\n }\n ]\n }\n]""" + "\n" +
@" }," + "\n" +
@" ""population"": {" + "\n" +
@" ""value"": ""c9f3fb3f-11e9-4eb0-b4ba-9fb7789a8418""" + "\n" +
@" }," + "\n" +
@" ""userIdentifierForFindUser"": {" + "\n" +
@" ""value"": ""[\n {\n \""children\"": [\n {\n \""text\"": \""5282e30d-6e05-499c-ae68-0069fba776f1\""\n }\n ]\n }\n]""" + "\n" +
@" }" + "\n" +
@" }" + "\n" +
@" }," + "\n" +
@" ""position"": {" + "\n" +
@" ""x"": 420," + "\n" +
@" ""y"": 360" + "\n" +
@" }," + "\n" +
@" ""group"": ""nodes""," + "\n" +
@" ""removed"": false," + "\n" +
@" ""selected"": false," + "\n" +
@" ""selectable"": true," + "\n" +
@" ""locked"": false," + "\n" +
@" ""grabbable"": true," + "\n" +
@" ""pannable"": false," + "\n" +
@" ""classes"": """"" + "\n" +
@" }" + "\n" +
@" ]" + "\n" +
@" }," + "\n" +
@" ""data"": {}," + "\n" +
@" ""zoomingEnabled"": true," + "\n" +
@" ""userZoomingEnabled"": true," + "\n" +
@" ""zoom"": 1," + "\n" +
@" ""minZoom"": 1e-50," + "\n" +
@" ""maxZoom"": 1e+50," + "\n" +
@" ""panningEnabled"": true," + "\n" +
@" ""userPanningEnabled"": true," + "\n" +
@" ""pan"": {" + "\n" +
@" ""x"": 0," + "\n" +
@" ""y"": 0" + "\n" +
@" }," + "\n" +
@" ""boxSelectionEnabled"": true," + "\n" +
@" ""renderer"": {" + "\n" +
@" ""name"": ""null""" + "\n" +
@" }" + "\n" +
@" }," + "\n" +
@" ""settings"": {" + "\n" +
@" ""csp"": ""worker-src 'self' blob:; script-src 'self' https://cdn.jsdelivr.net https://code.jquery.com https://devsdk.singularkey.com http://cdnjs.cloudflare.com 'unsafe-inline' 'unsafe-eval';""," + "\n" +
@" ""intermediateLoadingScreenCSS"": """"," + "\n" +
@" ""intermediateLoadingScreenHTML"": """"," + "\n" +
@" ""logLevel"": 2" + "\n" +
@" // ""pingOneFlow"": true" + "\n" +
@" }," + "\n" +
@" ""inputSchema"": [" + "\n" +
@" {" + "\n" +
@" ""description"": """"," + "\n" +
@" ""preferredControlType"": ""textField""," + "\n" +
@" ""preferredDataType"": ""object""," + "\n" +
@" ""propertyName"": ""flowParameters""," + "\n" +
@" ""required"": false" + "\n" +
@" }" + "\n" +
@" ]," + "\n" +
@" ""outputSchema"": {" + "\n" +
@" ""output"": {" + "\n" +
@" ""type"": ""object""," + "\n" +
@" ""properties"": {}," + "\n" +
@" ""additionalProperties"": true" + "\n" +
@" }" + "\n" +
@" }," + "\n" +
@" ""trigger"": {" + "\n" +
@" ""type"": ""AUTHENTICATION""" + "\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}}/flows"
method := "POST"
payload := strings.NewReader(`{
"name": "DaV-Flow_{{$timestamp}}",
"description": "This is a demo flow",
"color": "#00FF00",
"graphData": {
"elements": {
"nodes": [
{
"data": {
"id": "8bnj41592a",
"nodeType": "CONNECTION",
"connectionId": "94141bf2f1b9b59a5f5365ff135e02bb",
"connectorId": "pingOneSSOConnector",
"name": "PingOne",
"label": "PingOne",
"status": "configured",
"capabilityName": "userLookup",
"type": "action",
"properties": {
"additionalUserProperties": {
"value": []
},
"username": {
"value": "[\n {\n \"children\": [\n {\n \"text\": \"5282e30d-6e05-499c-ae68-0069fba776f1\"\n }\n ]\n }\n]"
},
"population": {
"value": "c9f3fb3f-11e9-4eb0-b4ba-9fb7789a8418"
},
"userIdentifierForFindUser": {
"value": "[\n {\n \"children\": [\n {\n \"text\": \"5282e30d-6e05-499c-ae68-0069fba776f1\"\n }\n ]\n }\n]"
}
}
},
"position": {
"x": 420,
"y": 360
},
"group": "nodes",
"removed": false,
"selected": false,
"selectable": true,
"locked": false,
"grabbable": true,
"pannable": false,
"classes": ""
}
]
},
"data": {},
"zoomingEnabled": true,
"userZoomingEnabled": true,
"zoom": 1,
"minZoom": 1e-50,
"maxZoom": 1e+50,
"panningEnabled": true,
"userPanningEnabled": true,
"pan": {
"x": 0,
"y": 0
},
"boxSelectionEnabled": true,
"renderer": {
"name": "null"
}
},
"settings": {
"csp": "worker-src 'self' blob:; script-src 'self' https://cdn.jsdelivr.net https://code.jquery.com https://devsdk.singularkey.com http://cdnjs.cloudflare.com 'unsafe-inline' 'unsafe-eval';",
"intermediateLoadingScreenCSS": "",
"intermediateLoadingScreenHTML": "",
"logLevel": 2
// "pingOneFlow": true
},
"inputSchema": [
{
"description": "",
"preferredControlType": "textField",
"preferredDataType": "object",
"propertyName": "flowParameters",
"required": false
}
],
"outputSchema": {
"output": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"trigger": {
"type": "AUTHENTICATION"
}
}`)
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}}/flows HTTP/1.1
Host: {{apiPath}}
Content-Type: application/json
Authorization: Bearer {{accessToken}}
{
"name": "DaV-Flow_{{$timestamp}}",
"description": "This is a demo flow",
"color": "#00FF00",
"graphData": {
"elements": {
"nodes": [
{
"data": {
"id": "8bnj41592a",
"nodeType": "CONNECTION",
"connectionId": "94141bf2f1b9b59a5f5365ff135e02bb",
"connectorId": "pingOneSSOConnector",
"name": "PingOne",
"label": "PingOne",
"status": "configured",
"capabilityName": "userLookup",
"type": "action",
"properties": {
"additionalUserProperties": {
"value": []
},
"username": {
"value": "[\n {\n \"children\": [\n {\n \"text\": \"5282e30d-6e05-499c-ae68-0069fba776f1\"\n }\n ]\n }\n]"
},
"population": {
"value": "c9f3fb3f-11e9-4eb0-b4ba-9fb7789a8418"
},
"userIdentifierForFindUser": {
"value": "[\n {\n \"children\": [\n {\n \"text\": \"5282e30d-6e05-499c-ae68-0069fba776f1\"\n }\n ]\n }\n]"
}
}
},
"position": {
"x": 420,
"y": 360
},
"group": "nodes",
"removed": false,
"selected": false,
"selectable": true,
"locked": false,
"grabbable": true,
"pannable": false,
"classes": ""
}
]
},
"data": {},
"zoomingEnabled": true,
"userZoomingEnabled": true,
"zoom": 1,
"minZoom": 1e-50,
"maxZoom": 1e+50,
"panningEnabled": true,
"userPanningEnabled": true,
"pan": {
"x": 0,
"y": 0
},
"boxSelectionEnabled": true,
"renderer": {
"name": "null"
}
},
"settings": {
"csp": "worker-src 'self' blob:; script-src 'self' https://cdn.jsdelivr.net https://code.jquery.com https://devsdk.singularkey.com http://cdnjs.cloudflare.com 'unsafe-inline' 'unsafe-eval';",
"intermediateLoadingScreenCSS": "",
"intermediateLoadingScreenHTML": "",
"logLevel": 2
// "pingOneFlow": true
},
"inputSchema": [
{
"description": "",
"preferredControlType": "textField",
"preferredDataType": "object",
"propertyName": "flowParameters",
"required": false
}
],
"outputSchema": {
"output": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"trigger": {
"type": "AUTHENTICATION"
}
}
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"name\": \"DaV-Flow_{{$timestamp}}\",\n \"description\": \"This is a demo flow\",\n \"color\": \"#00FF00\",\n \"graphData\": {\n \"elements\": {\n \"nodes\": [\n {\n \"data\": {\n \"id\": \"8bnj41592a\",\n \"nodeType\": \"CONNECTION\",\n \"connectionId\": \"94141bf2f1b9b59a5f5365ff135e02bb\",\n \"connectorId\": \"pingOneSSOConnector\",\n \"name\": \"PingOne\",\n \"label\": \"PingOne\",\n \"status\": \"configured\",\n \"capabilityName\": \"userLookup\",\n \"type\": \"action\",\n \"properties\": {\n \"additionalUserProperties\": {\n \"value\": []\n },\n \"username\": {\n \"value\": \"[\\n {\\n \\\"children\\\": [\\n {\\n \\\"text\\\": \\\"5282e30d-6e05-499c-ae68-0069fba776f1\\\"\\n }\\n ]\\n }\\n]\"\n },\n \"population\": {\n \"value\": \"c9f3fb3f-11e9-4eb0-b4ba-9fb7789a8418\"\n },\n \"userIdentifierForFindUser\": {\n \"value\": \"[\\n {\\n \\\"children\\\": [\\n {\\n \\\"text\\\": \\\"5282e30d-6e05-499c-ae68-0069fba776f1\\\"\\n }\\n ]\\n }\\n]\"\n }\n }\n },\n \"position\": {\n \"x\": 420,\n \"y\": 360\n },\n \"group\": \"nodes\",\n \"removed\": false,\n \"selected\": false,\n \"selectable\": true,\n \"locked\": false,\n \"grabbable\": true,\n \"pannable\": false,\n \"classes\": \"\"\n }\n ]\n },\n \"data\": {},\n \"zoomingEnabled\": true,\n \"userZoomingEnabled\": true,\n \"zoom\": 1,\n \"minZoom\": 1e-50,\n \"maxZoom\": 1e+50,\n \"panningEnabled\": true,\n \"userPanningEnabled\": true,\n \"pan\": {\n \"x\": 0,\n \"y\": 0\n },\n \"boxSelectionEnabled\": true,\n \"renderer\": {\n \"name\": \"null\"\n }\n },\n \"settings\": {\n \"csp\": \"worker-src 'self' blob:; script-src 'self' https://cdn.jsdelivr.net https://code.jquery.com https://devsdk.singularkey.com http://cdnjs.cloudflare.com 'unsafe-inline' 'unsafe-eval';\",\n \"intermediateLoadingScreenCSS\": \"\",\n \"intermediateLoadingScreenHTML\": \"\",\n \"logLevel\": 2\n // \"pingOneFlow\": true\n },\n \"inputSchema\": [\n {\n \"description\": \"\",\n \"preferredControlType\": \"textField\",\n \"preferredDataType\": \"object\",\n \"propertyName\": \"flowParameters\",\n \"required\": false\n }\n ],\n \"outputSchema\": {\n \"output\": {\n \"type\": \"object\",\n \"properties\": {},\n \"additionalProperties\": true\n }\n },\n \"trigger\": {\n \"type\": \"AUTHENTICATION\"\n }\n}");
Request request = new Request.Builder()
.url("{{apiPath}}/environments/{{envID}}/flows")
.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}}/flows",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer {{accessToken}}"
},
"data": "{\n \"name\": \"DaV-Flow_{{$timestamp}}\",\n \"description\": \"This is a demo flow\",\n \"color\": \"#00FF00\",\n \"graphData\": {\n \"elements\": {\n \"nodes\": [\n {\n \"data\": {\n \"id\": \"8bnj41592a\",\n \"nodeType\": \"CONNECTION\",\n \"connectionId\": \"94141bf2f1b9b59a5f5365ff135e02bb\",\n \"connectorId\": \"pingOneSSOConnector\",\n \"name\": \"PingOne\",\n \"label\": \"PingOne\",\n \"status\": \"configured\",\n \"capabilityName\": \"userLookup\",\n \"type\": \"action\",\n \"properties\": {\n \"additionalUserProperties\": {\n \"value\": []\n },\n \"username\": {\n \"value\": \"[\\n {\\n \\\"children\\\": [\\n {\\n \\\"text\\\": \\\"5282e30d-6e05-499c-ae68-0069fba776f1\\\"\\n }\\n ]\\n }\\n]\"\n },\n \"population\": {\n \"value\": \"c9f3fb3f-11e9-4eb0-b4ba-9fb7789a8418\"\n },\n \"userIdentifierForFindUser\": {\n \"value\": \"[\\n {\\n \\\"children\\\": [\\n {\\n \\\"text\\\": \\\"5282e30d-6e05-499c-ae68-0069fba776f1\\\"\\n }\\n ]\\n }\\n]\"\n }\n }\n },\n \"position\": {\n \"x\": 420,\n \"y\": 360\n },\n \"group\": \"nodes\",\n \"removed\": false,\n \"selected\": false,\n \"selectable\": true,\n \"locked\": false,\n \"grabbable\": true,\n \"pannable\": false,\n \"classes\": \"\"\n }\n ]\n },\n \"data\": {},\n \"zoomingEnabled\": true,\n \"userZoomingEnabled\": true,\n \"zoom\": 1,\n \"minZoom\": 1e-50,\n \"maxZoom\": 1e+50,\n \"panningEnabled\": true,\n \"userPanningEnabled\": true,\n \"pan\": {\n \"x\": 0,\n \"y\": 0\n },\n \"boxSelectionEnabled\": true,\n \"renderer\": {\n \"name\": \"null\"\n }\n },\n \"settings\": {\n \"csp\": \"worker-src 'self' blob:; script-src 'self' https://cdn.jsdelivr.net https://code.jquery.com https://devsdk.singularkey.com http://cdnjs.cloudflare.com 'unsafe-inline' 'unsafe-eval';\",\n \"intermediateLoadingScreenCSS\": \"\",\n \"intermediateLoadingScreenHTML\": \"\",\n \"logLevel\": 2\n // \"pingOneFlow\": true\n },\n \"inputSchema\": [\n {\n \"description\": \"\",\n \"preferredControlType\": \"textField\",\n \"preferredDataType\": \"object\",\n \"propertyName\": \"flowParameters\",\n \"required\": false\n }\n ],\n \"outputSchema\": {\n \"output\": {\n \"type\": \"object\",\n \"properties\": {},\n \"additionalProperties\": true\n }\n },\n \"trigger\": {\n \"type\": \"AUTHENTICATION\"\n }\n}",
};
$.ajax(settings).done(function (response) {
console.log(response);
});
var request = require('request');
var options = {
'method': 'POST',
'url': '{{apiPath}}/environments/{{envID}}/flows',
'headers': {
'Content-Type': 'application/json',
'Authorization': 'Bearer {{accessToken}}'
},
body: '{\n "name": "DaV-Flow_{{$timestamp}}",\n "description": "This is a demo flow",\n "color": "#00FF00",\n "graphData": {\n "elements": {\n "nodes": [\n {\n "data": {\n "id": "8bnj41592a",\n "nodeType": "CONNECTION",\n "connectionId": "94141bf2f1b9b59a5f5365ff135e02bb",\n "connectorId": "pingOneSSOConnector",\n "name": "PingOne",\n "label": "PingOne",\n "status": "configured",\n "capabilityName": "userLookup",\n "type": "action",\n "properties": {\n "additionalUserProperties": {\n "value": []\n },\n "username": {\n "value": "[\\n {\\n \\"children\\": [\\n {\\n \\"text\\": \\"5282e30d-6e05-499c-ae68-0069fba776f1\\"\\n }\\n ]\\n }\\n]"\n },\n "population": {\n "value": "c9f3fb3f-11e9-4eb0-b4ba-9fb7789a8418"\n },\n "userIdentifierForFindUser": {\n "value": "[\\n {\\n \\"children\\": [\\n {\\n \\"text\\": \\"5282e30d-6e05-499c-ae68-0069fba776f1\\"\\n }\\n ]\\n }\\n]"\n }\n }\n },\n "position": {\n "x": 420,\n "y": 360\n },\n "group": "nodes",\n "removed": false,\n "selected": false,\n "selectable": true,\n "locked": false,\n "grabbable": true,\n "pannable": false,\n "classes": ""\n }\n ]\n },\n "data": {},\n "zoomingEnabled": true,\n "userZoomingEnabled": true,\n "zoom": 1,\n "minZoom": 1e-50,\n "maxZoom": 1e+50,\n "panningEnabled": true,\n "userPanningEnabled": true,\n "pan": {\n "x": 0,\n "y": 0\n },\n "boxSelectionEnabled": true,\n "renderer": {\n "name": "null"\n }\n },\n "settings": {\n "csp": "worker-src \'self\' blob:; script-src \'self\' https://cdn.jsdelivr.net https://code.jquery.com https://devsdk.singularkey.com http://cdnjs.cloudflare.com \'unsafe-inline\' \'unsafe-eval\';",\n "intermediateLoadingScreenCSS": "",\n "intermediateLoadingScreenHTML": "",\n "logLevel": 2\n // "pingOneFlow": true\n },\n "inputSchema": [\n {\n "description": "",\n "preferredControlType": "textField",\n "preferredDataType": "object",\n "propertyName": "flowParameters",\n "required": false\n }\n ],\n "outputSchema": {\n "output": {\n "type": "object",\n "properties": {},\n "additionalProperties": true\n }\n },\n "trigger": {\n "type": "AUTHENTICATION"\n }\n}'
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
import json
url = "{{apiPath}}/environments/{{envID}}/flows"
payload = "{\n \"name\": \"DaV-Flow_{{$timestamp}}\",\n \"description\": \"This is a demo flow\",\n \"color\": \"#00FF00\",\n \"graphData\": {\n \"elements\": {\n \"nodes\": [\n {\n \"data\": {\n \"id\": \"8bnj41592a\",\n \"nodeType\": \"CONNECTION\",\n \"connectionId\": \"94141bf2f1b9b59a5f5365ff135e02bb\",\n \"connectorId\": \"pingOneSSOConnector\",\n \"name\": \"PingOne\",\n \"label\": \"PingOne\",\n \"status\": \"configured\",\n \"capabilityName\": \"userLookup\",\n \"type\": \"action\",\n \"properties\": {\n \"additionalUserProperties\": {\n \"value\": []\n },\n \"username\": {\n \"value\": \"[\\n {\\n \\\"children\\\": [\\n {\\n \\\"text\\\": \\\"5282e30d-6e05-499c-ae68-0069fba776f1\\\"\\n }\\n ]\\n }\\n]\"\n },\n \"population\": {\n \"value\": \"c9f3fb3f-11e9-4eb0-b4ba-9fb7789a8418\"\n },\n \"userIdentifierForFindUser\": {\n \"value\": \"[\\n {\\n \\\"children\\\": [\\n {\\n \\\"text\\\": \\\"5282e30d-6e05-499c-ae68-0069fba776f1\\\"\\n }\\n ]\\n }\\n]\"\n }\n }\n },\n \"position\": {\n \"x\": 420,\n \"y\": 360\n },\n \"group\": \"nodes\",\n \"removed\": false,\n \"selected\": false,\n \"selectable\": true,\n \"locked\": false,\n \"grabbable\": true,\n \"pannable\": false,\n \"classes\": \"\"\n }\n ]\n },\n \"data\": {},\n \"zoomingEnabled\": true,\n \"userZoomingEnabled\": true,\n \"zoom\": 1,\n \"minZoom\": 1e-50,\n \"maxZoom\": 1e+50,\n \"panningEnabled\": true,\n \"userPanningEnabled\": true,\n \"pan\": {\n \"x\": 0,\n \"y\": 0\n },\n \"boxSelectionEnabled\": true,\n \"renderer\": {\n \"name\": \"null\"\n }\n },\n \"settings\": {\n \"csp\": \"worker-src 'self' blob:; script-src 'self' https://cdn.jsdelivr.net https://code.jquery.com https://devsdk.singularkey.com http://cdnjs.cloudflare.com 'unsafe-inline' 'unsafe-eval';\",\n \"intermediateLoadingScreenCSS\": \"\",\n \"intermediateLoadingScreenHTML\": \"\",\n \"logLevel\": 2\n // \"pingOneFlow\": true\n },\n \"inputSchema\": [\n {\n \"description\": \"\",\n \"preferredControlType\": \"textField\",\n \"preferredDataType\": \"object\",\n \"propertyName\": \"flowParameters\",\n \"required\": false\n }\n ],\n \"outputSchema\": {\n \"output\": {\n \"type\": \"object\",\n \"properties\": {},\n \"additionalProperties\": true\n }\n },\n \"trigger\": {\n \"type\": \"AUTHENTICATION\"\n }\n}"
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}}/flows');
$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 "name": "DaV-Flow_{{$timestamp}}",\n "description": "This is a demo flow",\n "color": "#00FF00",\n "graphData": {\n "elements": {\n "nodes": [\n {\n "data": {\n "id": "8bnj41592a",\n "nodeType": "CONNECTION",\n "connectionId": "94141bf2f1b9b59a5f5365ff135e02bb",\n "connectorId": "pingOneSSOConnector",\n "name": "PingOne",\n "label": "PingOne",\n "status": "configured",\n "capabilityName": "userLookup",\n "type": "action",\n "properties": {\n "additionalUserProperties": {\n "value": []\n },\n "username": {\n "value": "[\\n {\\n \\"children\\": [\\n {\\n \\"text\\": \\"5282e30d-6e05-499c-ae68-0069fba776f1\\"\\n }\\n ]\\n }\\n]"\n },\n "population": {\n "value": "c9f3fb3f-11e9-4eb0-b4ba-9fb7789a8418"\n },\n "userIdentifierForFindUser": {\n "value": "[\\n {\\n \\"children\\": [\\n {\\n \\"text\\": \\"5282e30d-6e05-499c-ae68-0069fba776f1\\"\\n }\\n ]\\n }\\n]"\n }\n }\n },\n "position": {\n "x": 420,\n "y": 360\n },\n "group": "nodes",\n "removed": false,\n "selected": false,\n "selectable": true,\n "locked": false,\n "grabbable": true,\n "pannable": false,\n "classes": ""\n }\n ]\n },\n "data": {},\n "zoomingEnabled": true,\n "userZoomingEnabled": true,\n "zoom": 1,\n "minZoom": 1e-50,\n "maxZoom": 1e+50,\n "panningEnabled": true,\n "userPanningEnabled": true,\n "pan": {\n "x": 0,\n "y": 0\n },\n "boxSelectionEnabled": true,\n "renderer": {\n "name": "null"\n }\n },\n "settings": {\n "csp": "worker-src \'self\' blob:; script-src \'self\' https://cdn.jsdelivr.net https://code.jquery.com https://devsdk.singularkey.com http://cdnjs.cloudflare.com \'unsafe-inline\' \'unsafe-eval\';",\n "intermediateLoadingScreenCSS": "",\n "intermediateLoadingScreenHTML": "",\n "logLevel": 2\n // "pingOneFlow": true\n },\n "inputSchema": [\n {\n "description": "",\n "preferredControlType": "textField",\n "preferredDataType": "object",\n "propertyName": "flowParameters",\n "required": false\n }\n ],\n "outputSchema": {\n "output": {\n "type": "object",\n "properties": {},\n "additionalProperties": true\n }\n },\n "trigger": {\n "type": "AUTHENTICATION"\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}}/flows")
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 = "{\n \"name\": \"DaV-Flow_{{\\$timestamp}}\",\n \"description\": \"This is a demo flow\",\n \"color\": \"\\#00FF00\",\n \"graphData\": {\n \"elements\": {\n \"nodes\": [\n {\n \"data\": {\n \"id\": \"8bnj41592a\",\n \"nodeType\": \"CONNECTION\",\n \"connectionId\": \"94141bf2f1b9b59a5f5365ff135e02bb\",\n \"connectorId\": \"pingOneSSOConnector\",\n \"name\": \"PingOne\",\n \"label\": \"PingOne\",\n \"status\": \"configured\",\n \"capabilityName\": \"userLookup\",\n \"type\": \"action\",\n \"properties\": {\n \"additionalUserProperties\": {\n \"value\": []\n },\n \"username\": {\n \"value\": \"[\\n {\\n \\\"children\\\": [\\n {\\n \\\"text\\\": \\\"5282e30d-6e05-499c-ae68-0069fba776f1\\\"\\n }\\n ]\\n }\\n]\"\n },\n \"population\": {\n \"value\": \"c9f3fb3f-11e9-4eb0-b4ba-9fb7789a8418\"\n },\n \"userIdentifierForFindUser\": {\n \"value\": \"[\\n {\\n \\\"children\\\": [\\n {\\n \\\"text\\\": \\\"5282e30d-6e05-499c-ae68-0069fba776f1\\\"\\n }\\n ]\\n }\\n]\"\n }\n }\n },\n \"position\": {\n \"x\": 420,\n \"y\": 360\n },\n \"group\": \"nodes\",\n \"removed\": false,\n \"selected\": false,\n \"selectable\": true,\n \"locked\": false,\n \"grabbable\": true,\n \"pannable\": false,\n \"classes\": \"\"\n }\n ]\n },\n \"data\": {},\n \"zoomingEnabled\": true,\n \"userZoomingEnabled\": true,\n \"zoom\": 1,\n \"minZoom\": 1e-50,\n \"maxZoom\": 1e+50,\n \"panningEnabled\": true,\n \"userPanningEnabled\": true,\n \"pan\": {\n \"x\": 0,\n \"y\": 0\n },\n \"boxSelectionEnabled\": true,\n \"renderer\": {\n \"name\": \"null\"\n }\n },\n \"settings\": {\n \"csp\": \"worker-src 'self' blob:; script-src 'self' https://cdn.jsdelivr.net https://code.jquery.com https://devsdk.singularkey.com http://cdnjs.cloudflare.com 'unsafe-inline' 'unsafe-eval';\",\n \"intermediateLoadingScreenCSS\": \"\",\n \"intermediateLoadingScreenHTML\": \"\",\n \"logLevel\": 2\n // \"pingOneFlow\": true\n },\n \"inputSchema\": [\n {\n \"description\": \"\",\n \"preferredControlType\": \"textField\",\n \"preferredDataType\": \"object\",\n \"propertyName\": \"flowParameters\",\n \"required\": false\n }\n ],\n \"outputSchema\": {\n \"output\": {\n \"type\": \"object\",\n \"properties\": {},\n \"additionalProperties\": true\n }\n },\n \"trigger\": {\n \"type\": \"AUTHENTICATION\"\n }\n}"
response = http.request(request)
puts response.read_body
let parameters = "{\n \"name\": \"DaV-Flow_{{$timestamp}}\",\n \"description\": \"This is a demo flow\",\n \"color\": \"#00FF00\",\n \"graphData\": {\n \"elements\": {\n \"nodes\": [\n {\n \"data\": {\n \"id\": \"8bnj41592a\",\n \"nodeType\": \"CONNECTION\",\n \"connectionId\": \"94141bf2f1b9b59a5f5365ff135e02bb\",\n \"connectorId\": \"pingOneSSOConnector\",\n \"name\": \"PingOne\",\n \"label\": \"PingOne\",\n \"status\": \"configured\",\n \"capabilityName\": \"userLookup\",\n \"type\": \"action\",\n \"properties\": {\n \"additionalUserProperties\": {\n \"value\": []\n },\n \"username\": {\n \"value\": \"[\\n {\\n \\\"children\\\": [\\n {\\n \\\"text\\\": \\\"5282e30d-6e05-499c-ae68-0069fba776f1\\\"\\n }\\n ]\\n }\\n]\"\n },\n \"population\": {\n \"value\": \"c9f3fb3f-11e9-4eb0-b4ba-9fb7789a8418\"\n },\n \"userIdentifierForFindUser\": {\n \"value\": \"[\\n {\\n \\\"children\\\": [\\n {\\n \\\"text\\\": \\\"5282e30d-6e05-499c-ae68-0069fba776f1\\\"\\n }\\n ]\\n }\\n]\"\n }\n }\n },\n \"position\": {\n \"x\": 420,\n \"y\": 360\n },\n \"group\": \"nodes\",\n \"removed\": false,\n \"selected\": false,\n \"selectable\": true,\n \"locked\": false,\n \"grabbable\": true,\n \"pannable\": false,\n \"classes\": \"\"\n }\n ]\n },\n \"data\": {},\n \"zoomingEnabled\": true,\n \"userZoomingEnabled\": true,\n \"zoom\": 1,\n \"minZoom\": 1e-50,\n \"maxZoom\": 1e+50,\n \"panningEnabled\": true,\n \"userPanningEnabled\": true,\n \"pan\": {\n \"x\": 0,\n \"y\": 0\n },\n \"boxSelectionEnabled\": true,\n \"renderer\": {\n \"name\": \"null\"\n }\n },\n \"settings\": {\n \"csp\": \"worker-src 'self' blob:; script-src 'self' https://cdn.jsdelivr.net https://code.jquery.com https://devsdk.singularkey.com http://cdnjs.cloudflare.com 'unsafe-inline' 'unsafe-eval';\",\n \"intermediateLoadingScreenCSS\": \"\",\n \"intermediateLoadingScreenHTML\": \"\",\n \"logLevel\": 2\n // \"pingOneFlow\": true\n },\n \"inputSchema\": [\n {\n \"description\": \"\",\n \"preferredControlType\": \"textField\",\n \"preferredDataType\": \"object\",\n \"propertyName\": \"flowParameters\",\n \"required\": false\n }\n ],\n \"outputSchema\": {\n \"output\": {\n \"type\": \"object\",\n \"properties\": {},\n \"additionalProperties\": true\n }\n },\n \"trigger\": {\n \"type\": \"AUTHENTICATION\"\n }\n}"
let postData = parameters.data(using: .utf8)
var request = URLRequest(url: URL(string: "{{apiPath}}/environments/{{envID}}/flows")!,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
{
"_links": {
"self": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/flows/8bb2d660716fe912d7b782b7ced66158"
},
"environment": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
},
"connectorInstances": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/connectorInstances"
},
"connectors": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/connectors"
},
"flow.deploy": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/flows/8bb2d660716fe912d7b782b7ced66158"
},
"flow.clone": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/flows/8bb2d660716fe912d7b782b7ced66158"
},
"flow.validate": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/flows/8bb2d660716fe912d7b782b7ced66158"
},
"flow.enabled": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/flows/8bb2d660716fe912d7b782b7ced66158/enabled"
}
},
"id": "8bb2d660716fe912d7b782b7ced66158",
"environment": {
"id": "abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
},
"name": "DaV-Flow_1733959029",
"description": "This is a demo flow",
"enabled": true,
"settings": {
"csp": "worker-src 'self' blob:; script-src 'self' https://cdn.jsdelivr.net https://code.jquery.com https://devsdk.singularkey.com http://cdnjs.cloudflare.com 'unsafe-inline' 'unsafe-eval';",
"intermediateLoadingScreenCSS": "",
"intermediateLoadingScreenHTML": "",
"logLevel": 2
},
"color": "#00FF00",
"graphData": {
"elements": {
"nodes": [
{
"data": {
"id": "8bnj41592a",
"nodeType": "CONNECTION",
"connectionId": "94141bf2f1b9b59a5f5365ff135e02bb",
"connectorId": "pingOneSSOConnector",
"name": "PingOne",
"label": "PingOne",
"status": "configured",
"capabilityName": "userLookup",
"type": "action",
"properties": {
"additionalUserProperties": {
"value": []
},
"username": {
"value": "[\n {\n \"children\": [\n {\n \"text\": \"5282e30d-6e05-499c-ae68-0069fba776f1\"\n }\n ]\n }\n]"
},
"population": {
"value": "c9f3fb3f-11e9-4eb0-b4ba-9fb7789a8418"
},
"userIdentifierForFindUser": {
"value": "[\n {\n \"children\": [\n {\n \"text\": \"5282e30d-6e05-499c-ae68-0069fba776f1\"\n }\n ]\n }\n]"
}
}
},
"position": {
"x": 420,
"y": 360
},
"group": "nodes",
"removed": false,
"selected": false,
"selectable": true,
"locked": false,
"grabbable": true,
"pannable": false,
"classes": ""
}
]
},
"data": {},
"zoomingEnabled": true,
"userZoomingEnabled": true,
"zoom": 1,
"minZoom": 1e-50,
"maxZoom": 1e+50,
"panningEnabled": true,
"userPanningEnabled": true,
"pan": {
"x": 0,
"y": 0
},
"boxSelectionEnabled": true,
"renderer": {
"name": "null"
}
},
"inputSchema": [
{
"description": "",
"preferredControlType": "textField",
"preferredDataType": "object",
"propertyName": "flowParameters",
"required": false
}
],
"outputSchema": {
"output": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"trigger": {
"type": "AUTHENTICATION"
},
"createdAt": "2024-12-11T23:17:09.121Z",
"updatedAt": "2024-12-11T23:17:09.121Z"
}