Canvas REST API
The Canvas REST API enables your organization to interact with Canvas programmatically. Use this API to register new accounts and build integration workflows between third-party applications.
This page documents the REST resources available in Canvas, including the HTTP response codes and example requests and responses:
- IP restriction
- Authentication
- APIs for help
- APIs for organization administration
- Account
- Application APIs
- Workbench APIs
- Workflow APIs
- Webhook APIs
- api.* requests (api.get/api.post/api.send)
- myVault.* requests
- Others APIs
Base URL for environments:
DEV - https://canvastest.connectmyapps.com/api
PRD - https://canvas.connectmyapps.com/api
IP restriction
You can send Canvas REST API requests from any server by default.
If you want to restict access by IP addresses, then please provide your IP addresses to ConnectMyApps support for adding them into white list.
Authentication
For enabling of access to your organization data by REST API you need to set <API access> flag ON and copy provided Secret and Consumer keys. These keys are for access to Canvas REST API and you will use them in request headers. Do not share provided keys with anybody and keep them in safe place because they are not saved in Canvas and you will not be able to get them anymore.
Use following authentication request for checking your access keys:
GET https://<base-url>/Authenticate
Headers:
Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED
SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7
Response (status 200)
true
Response (status 401) Returned if the Consumer or SecretKey are incorrect or missing.
APIs for help
There are two APIs, which describes list of all provided APIs
GetMetaData
For getting of all provided APIs you need to send following request:
GET https://<base-url>/GetMetaData
Headers: no header
Response (status 200)
[
{
"name": "GetMetaData",
"parameters": "",
"verb": "GET",
"authenticate": false,
"description": "Returns controllers actions",
"returns": "JSON array"
},
{
"name": "Describe",
"parameters": "String name",
"verb": "GET",
"authenticate": false,
"description": "Describes object properties",
"returns": ""
},
{
"name": "Authenticate",
"parameters": "",
"verb": "GET",
"authenticate": false,
"description": "Checks authentification",
"returns": "boolean"
},
{
"name": "Applications",
"parameters": "",
"verb": "GET",
"authenticate": false,
"description": "Returns Canvas applications",
"returns": "JSON Array"
},
{
"name": "WorkflowTemplates",
"parameters": "",
"verb": "GET",
"authenticate": false,
"description": "Returns list of workflow templates",
"returns": "JSON array"
},
{
"name": "Accounts",
"parameters": "",
"verb": "GET",
"authenticate": false,
"description": "Returns list of accounts in the organization",
"returns": "JSON array"
},
{
"name": "RegApplications",
"parameters": "",
"verb": "GET",
"authenticate": false,
"description": "Returns account registerred applications",
"returns": "JSON Array"
},
{
"name": "Workflows",
"parameters": "",
"verb": "GET",
"authenticate": false,
"description": "Returns list of registered workflows",
"returns": "JSON array"
},
{
"name": "Workflow",
"parameters": "Guid id",
"verb": "GET",
"authenticate": false,
"description": "Returns registered workflow by id",
"returns": "JSON"
},
{
"name": "RegApplication",
"parameters": "[FromBody]AddRegApplicationApiDto regApp",
"verb": "POST",
"authenticate": false,
"description": "Registers a new application and returns Id",
"returns": "Guid"
},
{
"name": "Workflow",
"parameters": "[FromBody]AddWorkflowApiDto workflow",
"verb": "POST",
"authenticate": false,
"description": "Registers a new workflow based on template and returns Id",
"returns": "Guid"
},
{
"name": "DeleteWorkflow",
"parameters": "Guid id",
"verb": "GET",
"authenticate": false,
"description": "Deletes workflow by Id",
"returns": "Guid"
},
{
"name": "RunWorkflow",
"parameters": "[FromBody]RunMetadataApiDto metadata",
"verb": "POST",
"authenticate": false,
"description": "Runs workflow",
"returns": "Guid"
},
{
"name": "WorkflowScheduler",
"parameters": "[FromBody]UpdateWorkfowSchedulerApiDto scheduler",
"verb": "POST",
"authenticate": false,
"description": "Updates the workflow scheduler",
"returns": ""
},
{
"name": "Account",
"parameters": "[FromBody]AddAccountApiDto data",
"verb": "POST",
"authenticate": false,
"description": "Account registration",
"returns": ""
}
]
Describe
For getting of description about APIs parameters you can use following request:
GET https://<base-url>/Describe?name=AddWorkflowApiDto
Header:
no header
Response (status 200)
[
{
"typeName": "guid",
"propertyName": "workflowTemplateId",
"genericParameters": "",
"isRequired": true
},
{
"typeName": "string",
"propertyName": "name",
"genericParameters": "",
"isRequired": false
},
{
"typeName": "string",
"propertyName": "description",
"genericParameters": "",
"isRequired": false
},
{
"typeName": "dictionary",
"propertyName": "applications",
"genericParameters": "string,guid",
"isRequired": true
},
{
"typeName": "iEnumerable",
"propertyName": "chain",
"genericParameters": "chainApiDto",
"isRequired": false
}
]
APIs for organization administration
Accounts
Returns list of all active accounts in your organization
GET https://<base-url>/Accounts
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
[
{
"id": "aae3f328-a561-4171-a0e9-19f6047c154b",
"firstName": "John",
"lastName": "Smith",
"email": "John.Smith@connectmyapps.com",
"organizationId": "00000000-0000-0000-0000-000000000000",
"organizationName": "ConnectMyApps AS",
"roleId": "cff56fc9-854b-4b63-b06f-5c447b93e305",
"role": "User",
"dateCreated": "2020-05-07T19:10:36.69"
},
{
"id": "dedf618d-53a7-42af-bb4a-d78ec8e6dbdc",
"firstName": "Walter",
"lastName": "Benedicte",
"email": "Walter.Benedicte@connectmyapps.com",
"organizationId": "00000000-0000-0000-0000-000000000000",
"organizationName": "ConnectMyApps AS",
"roleId": "cff56fc9-854b-4b63-b06f-5c447b93e305",
"role": "User",
"dateCreated": "2017-03-01T08:51:32.31"
},
{
"id": "387c0680-d4d2-43c6-b802-49419d88260b",
"firstName": "Petter",
"lastName": "Charlotte",
"email": "Petter.Charlotte@connectmyapps.com",
"organizationId": "00000000-0000-0000-0000-000000000000",
"organizationName": "ConnectMyApps AS",
"roleId": "cff56fc9-854b-4b63-b06f-5c447b93e305",
"role": "User",
"dateCreated": "2013-06-01T18:56:22.763"
}
]
Account
Registers a new account and returns account Id. If account is created as inactive then an email to complete activation will be send by corresponded address.
POST https://<base-url>/Account
Body JSON structure: AddAccountApiDto
Body example:
{
"firstName": "John",
"lastName": "Smeet",
"email": "john.smmet@сompany.com",
"phone":"+470568765432",
"roleName":"SuperPartner",
"countryKey":"DE",
"globalNotifications":true,
"defaultNotificationEmail":"support@company.com",
"activated":true
}
Headers:
Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
"e39bc2a3-a730-4cc9-949c-9a5cb516008e"
Response (status 401) Status Code: 401; Unauthorized
Response (status 400)
Account has already been created
Response (status 400)
Role Admin is not supported. Please use SuperPartner or User
Application APIs
Applications
Returns list of all third-part applications supported by CMA
GET https://<base-url>/Applications
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
[
{
"id": "07ffd13d-ba57-4d1b-9c46-03c5c919eed0",
"name": "Talentsoft",
"shortName": "TASO",
"description": "HR",
"vendorUrl": "https://www.talentsoft.com/",
"credentialFields": [
{
"ShortName": "baseUrl",
"Name": "Base url",
"Type": "text",
"Value": "",
"Optional": false,
"Desc": "Talentsoft API url.",
"Hidden": false
},
{
"ShortName": "client_id",
"Name": "Client ID",
"Type": "text",
"Value": "",
"Optional": false,
"Desc": "Talentsoft client ID.",
"Hidden": false
},
{
"ShortName": "client_secret",
"Name": "Client secret",
"Type": "text",
"Value": "",
"Optional": false,
"Desc": "Talentsoft client secret.",
"Hidden": false
}
],
"credentialsJson": {
"baseUrl": null,
"client_id": null,
"client_secret": null
},
"tag": "Hr, Premium",
"sessionTimeMins": 0,
"sessionSlidingExpiry": false
},
{
"id": "97cbc3b3-32c7-4e4a-b788-a332ea82aeff",
"name": "Quinyx",
"shortName": "QUIN",
"description": "Workforce planning",
"vendorUrl": "http://www.quinyx.com",
"credentialFields": [
{
"ShortName": "apikey",
"Name": "API key",
"Type": "text",
"Value": "",
"Optional": false,
"Desc": "Your Quinyx API key",
"Hidden": false
},
{
"ShortName": "environment",
"Name": "Environment",
"Type": "select",
"Value": "",
"Options": "live|Live Environment,test|Test Environment",
"Optional": false,
"Desc": "Choose which Quinyx environment you wish to use, live or test.",
"Hidden": false
}
],
"credentialsJson": {
"apikey": null,
"environment": null
},
"tag": "Scheduling,Planning,Premium",
"sessionTimeMins": 0,
"sessionSlidingExpiry": false
},
...,
{
"id": "b5a4a9ed-a686-4b1e-af30-ffd84b7fb2e0",
"name": "Talent Manager",
"shortName": "HRTM",
"description": "HR solution",
"vendorUrl": "http://www.hr-manager.net",
"credentialFields": [
{
"ShortName": "customeralias",
"Name": "Customer alias",
"Type": "text",
"Value": "",
"Optional": false,
"Desc": "Your customer alias.",
"Hidden": false
},
{
"ShortName": "apikey",
"Name": "Your API key",
"Type": "text",
"Value": "",
"Optional": false,
"Desc": "Your API key.",
"Hidden": false
}
],
"credentialsJson": {
"customeralias": null,
"apikey": null
},
"tag": "HR",
"sessionTimeMins": 0,
"sessionSlidingExpiry": false
}
]
Response (status 401) Returned if the Authorization is incorrect or missing.
RegApplications
Returns account registerred applications
GET https://<base-url>/RegApplications
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
[
{
"id": "fda1f9ee-4c7f-4e0a-a459-2e434dbbef7d",
"shortName": "QUIN",
"accountId": "e39bc2a3-a730-4cc9-949c-9a5cb516008e",
"applicationId": "97cbc3b3-32c7-4e4a-b788-a332ea82aeff",
"name": "Quinyx",
"tagText": "N-Quinyx",
"description": "Workforce planning",
"isAuthenticated": true,
"isOAuthApp": false,
"dateModified": "2022-04-19T15:56:22.1133746",
"dateTimeUtcAuthenticated": "2022-04-19T15:56:22.0345429",
"dateTimeForReAuth": "2022-04-19T15:56:22.0345429",
"sessionTimeMins": 0,
"sessionSlidingExpiry": false,
"faulted": false
},
{
"id": "4a80a49e-d26d-4594-9853-15d569dc95a4",
"shortName": "MSQL",
"accountId": "e39bc2a3-a730-4cc9-949c-9a5cb516008e",
"applicationId": "276511d9-f07f-4fa6-b109-fdb4d62b2429",
"name": "Microsoft SQL On-premise",
"tagText": "N-Microsoft SQL On-premise",
"description": "Database engine",
"isAuthenticated": true,
"isOAuthApp": false,
"dateModified": "2021-09-06T13:30:11.2590869",
"dateTimeUtcAuthenticated": "2021-04-14T10:27:22.1672672",
"dateTimeForReAuth": "2021-04-14T10:27:22.1672672",
"sessionTimeMins": 0,
"sessionSlidingExpiry": false,
"faulted": false
},
{
"id": "9d164191-4ebb-49b3-89dd-b9e2bdc22328",
"shortName": "CMAF",
"accountId": "78e83bd6-32b1-41b6-b172-9e6dc88d6477",
"applicationId": "9b6a04b3-c91f-4255-9033-6ac7b7a6f935",
"name": "File Hub",
"tagText": "File Hub",
"description": "File automation",
"isAuthenticated": true,
"isOAuthApp": false,
"dateModified": "2022-04-20T14:00:27.1912258",
"dateTimeUtcAuthenticated": null,
"dateTimeForReAuth": null,
"sessionTimeMins": 0,
"sessionSlidingExpiry": false,
"faulted": false
},
{
"id": "a067c363-7339-4fed-b1ad-456fd7603986",
"shortName": "FTP",
"accountId": "78e83bd6-32b1-41b6-b172-9e6dc88d6477",
"applicationId": "5f814909-01ea-4395-96ee-5ba7614128fc",
"name": "FTP Server",
"tagText": "N-FTP Server",
"description": "File upload and download",
"isAuthenticated": true,
"isOAuthApp": false,
"dateModified": "2022-02-01T15:33:49.9987294",
"dateTimeUtcAuthenticated": "2022-02-01T15:33:49.9919226",
"dateTimeForReAuth": "2022-02-01T15:33:49.9919226",
"sessionTimeMins": 0,
"sessionSlidingExpiry": false,
"faulted": false
},
]
RegApplication
Registers a new application and returns Id
POST https://<base-url>/RegApplication
Body JSON structure: AddRegApplicationApiDto
Body example 1:
{
"applicationId": "97cbc3b3-32c7-4e4a-b788-a332ea82aeff",
"tagText": "Quinyx 2022-04-28",
"credentialsJson": "{\"apikey\":\"e16d092b-577a-4d49-ae1e-87b993dc5fa9\",\"environment\": \"test\"}"
}
Body example 2:
{
"applicationId": "5f814909-01ea-4395-96ee-5ba7614128fc",
"tagText": "FTP 2022-05-03",
"credentialsJson": "{\"username\": null,\"password\": null,\"port\": null,\"address\": null,\"secure\": true}"
}
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
"eea37d64-5a93-478c-8216-6231c0a37f0a"
Response (status 401) Status Code: 401; Unauthorized
Response (status 400)
Authentication Error: You must enter a value for User name.
You must enter a value for Password.
You must enter a value for Port.
You must enter a value for Server address.
Updates (rename/reauth) registered application
POST https://<base-url>/RegApplication/c97f96bf-c372-4acf-b596-74ce037e0b68
Body JSON structure: EditRegApplicationApiDto
Body example 1:
{
"tagText": "Quinyx 2022-04-28",
"credentialsJson": "{\"apikey\":\"e16d092b-577a-4d49-ae1e-87b993dc5fa9\",\"environment\": \"test\"}"
}
DeleteRegApplication
GET https://<base-url>/DeleteRegApplication/c97f96bf-c372-4acf-b596-74ce037e0b68
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
true
Response (status 401) Status Code: 401; Unauthorized
Response (status 500)
{
"State": 500,
"Msg": "Undeclared RegisteredApplication"
}
Response (status 400)
Deletion error:
We're unable to delete the application (c97f96bf-c372-4acf-b596-74ce037e0b68) because it is in use within an active workflow(s): fd66448b-5c0b-41c5-ab22-0c5b550d5854, 86bf89a1-ef5c-40fd-88a7-2a825cd14aba
Please ensure that the application is not being utilized in any workflows and try again.
If you need further assistance, please contact support.
Workbench APIs
WorkflowTemplates
Returns list of workflow templates provided by CMA and your organization
GET https://<base-url>/WorkflowTemplates
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
[
{
"chain": [
{
"uniqueBlockId": "bab5609e-cc2d-4c22-b1a8-21b65e6c419d",
"blockName": "Get Employees",
"dataSources": [],
"variables": {
"amountToObtain": {
"variableSource": 2,
"variableName": "amountToObtainWfQ",
"value": "10"
}
}
},
{
"uniqueBlockId": "91c36eb8-ddc2-4429-9a77-83bbdcc44e08",
"blockName": "Mapper",
"dataSources": ["bab5609e-cc2d-4c22-b1a8-21b65e6c419d"],
"variables": {}
},
{
"uniqueBlockId": "436294d6-d14d-4b71-bc88-fa50213c2a48",
"blockName": "Post Employees",
"dataSources": [],
"variables": {}
}
],
"variables": {
"amountToObtainWfQ": {
"value": "10"
},
"locationsMapping": {
"value": {
"table": [
{
"source": "Oslo",
"target": null
},
{
"source": "Bergen",
"target": null
}
],
"default": null
}
}
},
"id": "c35de990-ccfa-4aab-966e-96e0b3044d71",
"name": "Demo workflow",
"description": "",
"dateCreated": "2022-09-28T11:54:58.444",
"dateModified": "2024-04-28T18:22:52.4183776",
"state": "Published",
"version": "0.0.6",
"draftIsCommitted": true,
"dateCommitted": "2024-04-28T18:22:52.4183776",
"organizationId": null,
"applications": [
"TEST"
]
},
...
]
WorkflowTemplate
Returns list of workflow templates provided by CMA and your organization
GET https://<base-url>/WorkflowTemplate/c35de990-ccfa-4aab-966e-96e0b3044d71?isDraft=false
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
{
"chain": [
{
"uniqueBlockId": "bab5609e-cc2d-4c22-b1a8-21b65e6c419d",
"blockName": "Get Employees",
"script": "let vars = getVariables();\nreturn vars;",
"dataSources": [],
"variables": {
"amountToObtain": {
"tagName": "amountToObtain",
"name": "Amount to obtain",
"description": "Specify how many employees should be obtained",
"type": "INPUT",
"isRequired": true,
"options": null,
"optionsPath": null,
"optionsName": null,
"dataSource": null,
"dataTarget": null,
"multiple": false,
"variableSource": 2,
"variableName": "amountToObtainWfQ",
"value": "10"
}
}
},
{
"uniqueBlockId": "91c36eb8-ddc2-4429-9a77-83bbdcc44e08",
"blockName": "Mapper",
"variables": {}
},
{
"uniqueBlockId": "436294d6-d14d-4b71-bc88-fa50213c2a48",
"blockName": "Post Employees",
"variables": {}
}
],
"variables": {
"amountToObtainWfQ": {
"tagName": "amountToObtainWfQ",
"name": "What amount of employees should be obtained?",
"description": "The \"Get Employees\" block requires a number to obtain. The value you enter here will be passed to the block",
"value": "10",
"type": "INPUT",
"isRequired": true,
"options": null,
"optionsPath": null,
"optionsName": null,
"dataSource": null,
"dataTarget": null,
"multiple": false
},
"locationsMapping": {
"tagName": "LocationsMapping",
"name": "Locaitons",
"description": null,
"value": {
"table": [
{
"source": "Oslo",
"target": null
},
{
"source": "Bergen",
"target": null
}
],
"default": null
},
"type": "LOOKUP_TABLE",
"isRequired": true,
"options": [],
"optionsPath": null,
"optionsName": null,
"dataSource": null,
"dataTarget": null,
"multiple": false
}
},
"id": "c35de990-ccfa-4aab-966e-96e0b3044d71",
"name": "Demo workflow",
"description": "",
"dateCreated": "2022-09-28T11:54:58.444",
"dateModified": "2024-04-28T18:22:52.4183776",
"state": "Published",
"version": "0.0.6",
"draftIsCommitted": true,
"dateCommitted": "2024-04-28T18:22:52.4183776",
"organizationId": null,
"applications": [
"TEST"
]
}
Workflow APIs
Workflows
Returns list of registered workflows
GET https://<base-url>/Workflows
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
[
{
"id": "ef6a56e6-448f-4787-b58d-47b063d6e988",
"name": "Quinyx Employee Export Into FTP(CSV)",
"description": "Quinyx Employee Export Into FTP(CSV)",
"status": "Ready",
"isScheduled": false,
"schedulerFrequency": "{ \"cronSchedule\": \"0 0 * ? * *\"}",
"isAutoRunPaused": true,
"isWebhookActive": true,
"workflowTemplateId": "bbe52876-aca2-4ece-ba31-11e0d98ddc19",
"isCustomizedStructure": true,
"accountId": "be4f3f1e-0e6d-4f68-b8d8-546163c5dfad",
"organizationId": "00000000-0000-0000-0000-000000000000",
"dateCreated": "2022-02-22T15:29:22.3525209",
"dateModified": "2022-04-13T06:30:56.2625076",
"dateLastRun": "2022-04-12T10:35:32.731+00:00",
"dateNextSchedule": null,
"regApplicationIds": [
"1710ff47-f590-43db-b0de-015676e99615",
"fa2ee993-03cf-4baf-a8a0-684e92e74ded"
],
"currentBlock": 5
},
{
"id": "b459cf22-ad18-44bf-80dc-6e8b78be1cc5",
"name": "Order transferring",
"description": "Transfer orders from MyStore into Tripletex invoices with payments",
"status": "Ready",
"isScheduled": false,
"schedulerFrequency": "{\"cronSchedule\":\"0 0 0/1 ? * * *\"}",
"isAutoRunPaused": false,
"isWebhookActive": true,
"workflowTemplateId": null,
"isCustomizedStructure": false,
"accountId": "be4f3f1e-0e6d-4f68-b8d8-546163c5dfad",
"organizationId": "00000000-0000-0000-0000-000000000000",
"dateCreated": "2022-03-24T18:08:22.2543998",
"dateModified": "2022-04-12T10:36:56.478261",
"dateLastRun": "2022-04-12T10:36:57.877+00:00",
"dateNextSchedule": "2022-04-05T17:00:00+00:00",
"regApplicationIds": [
"281686d9-aedd-4359-89b4-8f878ad43b35",
"03548816-f945-4bb2-b66e-950dff826fb8"
],
"currentBlock": 3
},
{
"id": "a78cee1b-adca-4777-9261-f86e4640e7db",
"name": "QuinyxRandom",
"description": "random",
"status": "Ready",
"isScheduled": true,
"schedulerFrequency": "{\"cronSchedule\":\"0 0 2,6 ? * TUE *\"}",
"isAutoRunPaused": true,
"isWebhookActive": false,
"workflowTemplateId": null,
"isCustomizedStructure": false,
"accountId": "be4f3f1e-0e6d-4f68-b8d8-546163c5dfad",
"organizationId": "00000000-0000-0000-0000-000000000000",
"dateCreated": "2021-04-02T08:33:15.3238045",
"dateModified": "2022-04-12T10:19:50.2024988",
"dateLastRun": "2022-04-26T06:00:28.976+00:00",
"dateNextSchedule": "2022-05-03T02:00:00+00:00",
"regApplicationIds": [
"1710ff47-f590-43db-b0de-015676e99615"
],
"currentBlock": 3
},
{
"id": "4fb07016-6a38-4031-83d7-2cd70af024d9",
"name": "BigResponse",
"description": "BigResponse",
"status": "Ready",
"isScheduled": false,
"schedulerFrequency": "{ \"cronSchedule\": \"0 0 * ? * *\"}",
"isAutoRunPaused": false,
"isWebhookActive": false,
"workflowTemplateId": null,
"isCustomizedStructure": false,
"accountId": "be4f3f1e-0e6d-4f68-b8d8-546163c5dfad",
"organizationId": "00000000-0000-0000-0000-000000000000",
"dateCreated": "2021-10-29T14:12:42.4563685",
"dateModified": "2022-02-01T09:58:53.506504",
"dateLastRun": "2021-11-26T16:35:57.573+00:00",
"dateNextSchedule": null,
"regApplicationIds": [],
"currentBlock": 0
},
{
"id": "8d85eb13-9663-4ac7-8502-46c5d38f9c1e",
"name": "SpecialSymbols",
"description": "SpecialSymbols",
"status": "Ready",
"isScheduled": false,
"schedulerFrequency": "{ \"cronSchedule\": \"0 0 * ? * *\"}",
"isAutoRunPaused": false,
"isWebhookActive": false,
"workflowTemplateId": null,
"isCustomizedStructure": false,
"accountId": "be4f3f1e-0e6d-4f68-b8d8-546163c5dfad",
"organizationId": "00000000-0000-0000-0000-000000000000",
"dateCreated": "2021-09-15T14:55:20.4327369",
"dateModified": "2022-02-01T09:56:16.9089015",
"dateLastRun": "2021-09-15T14:59:02.95+00:00",
"dateNextSchedule": null,
"regApplicationIds": [
"dbdd41cf-28de-4d2d-9771-7105c2165bcf"
],
"currentBlock": 1
},
{
"id": "f01eccf9-f56c-420a-9da3-e938291514e8",
"name": "Random",
"description": "Random",
"status": "Ready",
"isScheduled": false,
"schedulerFrequency": "{\"cronSchedule\":\"0 0 0/1 ? * * *\"}",
"isAutoRunPaused": false,
"isWebhookActive": false,
"workflowTemplateId": null,
"isCustomizedStructure": false,
"accountId": "be4f3f1e-0e6d-4f68-b8d8-546163c5dfad",
"organizationId": "00000000-0000-0000-0000-000000000000",
"dateCreated": "2021-03-31T09:09:31.1665459",
"dateModified": "2021-11-26T16:37:10.8509085",
"dateLastRun": "2021-11-26T16:37:12.128+00:00",
"dateNextSchedule": "2021-09-20T11:00:00+00:00",
"regApplicationIds": [
"1c08aaa2-52ae-4e74-bb9d-108f6f36b8a8"
],
"currentBlock": 4
}
]
Workflow (get)
Returns registered workflow by id
GET https://<base-url>/Workflow/b459cf22-ad18-44bf-80dc-6e8b78be1cc5
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
{
"id": "b459cf22-ad18-44bf-80dc-6e8b78be1cc5",
"name": "Order transferring",
"description": "Transfer orders from MyStore into Tripletex invoices with payments",
"status": "Ready",
"isScheduled": false,
"scheduleCron": "0 0/5 * ? * * *",
"isAutoRunPaused": true,
"isWebhookActive": true,
"workflowTemplateId": null,
"isCustomizedStructure": false,
"accountId": "be4f3f1e-0e6d-4f68-b8d8-546163c5dfad",
"organizationId": "00000000-0000-0000-0000-000000000001",
"dateCreated": "2022-03-24T18:08:22.2543998",
"dateModified": "2022-04-12T10:36:56.478261",
"dateLastRun": "2022-04-12T10:36:57.877+00:00",
"regApplicationIds": [
"281686d9-aedd-4359-89b4-8f878ad43b35",
"03548816-f945-4bb2-b66e-950dff826fb8"
],
"variables": {
"apiKey": {
"tagName": "apiKey",
"name": "apiKey",
"description": null,
"value": "xxxx-xxxx-xxxx-xxxx",
"type": "INPUT",
"isRequired": true,
"options": null,
"optionsPath": null,
"optionsName": null,
"dataSource": null,
"dataTarget": null,
"multiple": false
}
},
"currentBlock": 3,
"chain": [
{
"script": "\nvar source = await api.get('myst2/orders');\nreturn source;",
"uniqueBlockId": "aa2ae929-154e-4ffc-b09c-01e5dd198a5f",
"blockName": "MyStore Get Orders",
"script": "let vars = getVariables();\nreturn vars;",
"dataSources": [],
"variables": {}
}
},
{
"script": "let cma_item = {};\r\ncma_item[\"MyStoreGetCustomers\"] = Datasource[0];\r\ncma_item[\"workflowVariables\"] = getWorkflowVariables();\r\nlet cma_Result = {};\r\n\r\n/* calculate all functions */\r\n{\r\n cma_item[\"cnst1\"] = \"wer\";\r\n}\r\n\r\n/* build mapping */\r\n{\r\n let cma_result_0 = {};\r\n\r\n\r\n cma_result_0[\"Mapper\"] = [];\r\n if(!!cma_item?.[\"MyStoreGetCustomers\"]) //Array\r\n {\r\n for(let cma_MyStoreGetCustomersSrc_1 of cma_item?.[\"MyStoreGetCustomers\"])\r\n {\r\n let cma_MapperDest_2 = {};\r\n cma_MapperDest_2[\"newField1\"] = cma_MyStoreGetCustomersSrc_1?.[\"id\"];\r\n cma_result_0[\"Mapper\"].push(cma_MapperDest_2);\r\n }\r\n }\r\n\r\n\r\n\r\n cma_Result = cma_result_0 ;\r\n}\r\nreturn cma_Result[\"Mapper\"];\r\n",
"uniqueBlockId": "14886f56-618d-448d-a1be-eda6d44cfc0e",
"blockName": "Mapper",
"script": "let vars = getVariables();\n...return result;",
"dataSources": ["aa2ae929-154e-4ffc-b09c-01e5dd198a5f"],
"variables": {}
},
{
"script": "let sourceBlock = Datasource[0];\nlet result = [];\nif (fx.any(sourceBlock)) {\n for (const objectToImport of sourceBlock) {\n let response = await api.post('xxxx/SomeEndpoint', objectToImport);\n\n result.push(response);\n await myVault.set(sourceObject.fieldA, 'imported');\n }\n}\nreturn result;\n ",
"uniqueBlockId": "05b7c7fe-46d5-45fc-8203-c35aea7180b1",
"blockName": "Post",
"dataSources": [],
"variables": {
"apiKey": {
"tagName": "apiKey",
"name": "apiKey",
"description": null,
"type": "INPUT",
"isRequired": true,
"options": null,
"optionsPath": null,
"optionsName": null,
"dataSource": null,
"dataTarget": null,
"multiple": false,
"variableSource": 1,
"variableName": null,
"value": "xxxx-xxxx-xxxx-xxxx"
}
}
}
]
}
Workflow (post)
Registers a new workflow based on template
POST https://<base-url>/Workflow
The endpoint doesn't support adding or deleteing variables or blocks from template, it is just for updating existed. If propery is not in the body, then it will be missed in registration and will be set from template.
Body JSON structure: AddWorkflowApiDto Body example:
{
"workflowTemplateId": "bbe52876-aca2-4ece-ba31-11e0d98ddc19",
"name": "Test Quinyx Employee Export Into FTP(CSV)",
"applications": {"QUIN":"e3320a16-4b20-4e33-840f-2f5d28e3e1ca", "FTP":"0741b73d-2b13-4a4a-a0c2-2ffad9548e06"},
"chain":[
{
"uniqueBlockId": "02d1424a-da90-4c12-9c28-96162e624bd7",,
"dataSources": [
"2b79e418-0296-4305-97fc-6213ff4a19f3"
],
"script": "let blockVars = getVariables();\n...return result;",
"variables": {
"apiKeys":{
"variableSource": 1,
"variableName": null,
"value": ["xxxx-xxxx-xxxx-xxxx"]
},
"badgeNo": null
}
}
]
}
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
"0fdfd78c-258f-49ed-9e8c-faef9d6598fa"
Response (status 401) Status Code: 401; Unauthorized
Response (status 500)
{
"State": 500,
"Msg": "Unknown workflow template 1be52876-aca2-4ece-ba31-11e0d98ddc19"
}
Updates existed workflow by Id
POST https://<base-url>/Workflow/e0b8c9e6-a55b-4ff8-80f0-8fe1c5510d16
The endpoint doesn't support adding or deleteing variables or blocks, it is just for updating existed. If propery is not in the body, then it will be missed in updating Use "unboundFromTemplate" propery for unbound from template
Body JSON structure: EditWorkflowApiDto Body example:
{
"name": "test UCIN-1021-UPD1",
"description": "description-UPD1",
"applications": {"MYST2":"25a49bb8-2848-4e84-baf6-a2c294efdeae"},
"chain": [
{
"uniqueBlockId": "357e9a39-b0bd-47df-8f39-c883336dcf14",
"blockName": "test lookup2",
"dataSources": [
"2b79e418-0296-4305-97fc-6213ff4a19f3"
],
"script": "let blockVars = getVariables();\n...return result;",
"variables": {
"lt1": {
"variableSource": 2,
"variableName": "lt1",
"value": null
},
"testValue": {
"variableSource": 2,
"variableName": "testValue1",
"value": null
},
"country": {
"variableSource": 2,
"variableName": "country",
"value": null
},
"city": {
"variableSource": 2,
"variableName": "city",
"value": null
}
}
}
],
"variables": {
"lt1": {
"value": {
"table": [
{
"source": "1",
"target": "2"
}
],
"default": "1"
}
},
"testValue1": {
"value": "123"
},
"country": {
"value": "2"
},
"city": {
"value": "3"
}
}
}
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
true
Response (status 401)
Status Code: 401; Unauthorized
Response (status 500)
{
"State": 500,
"Msg": "Undeclared RegisteredCanvasWorkflow key"
}
Response (status 400)
Undeclared block variable var2 in block 2b79e418-0296-4305-97fc-6213ff4a19f3, workflow d19d708e-715b-4f4c-9718-1a702c887c2c
Response (status 400)
Undeclared block 2b79e333-0296-4305-97fc-6213ff4a19f3 in workflow d19d708e-715b-4f4c-9718-1a702c887c2c.
DeployWorkflow
Deploy workflow by Id
GET https://<base-url>/DeployWorkflow/7b2dee52-5781-49bf-9895-d6d2b2b43e2c
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
true
Response (status 401)
Status Code: 401; Unauthorized
DeleteWorkflow
Removes workflow by Id
GET https://<base-url>/DeleteWorkflow/7b2dee52-5781-49bf-9895-d6d2b2b43e2c
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
true
Response (status 401)
Status Code: 401; Unauthorized
RunWorkflow
Runs workflow or needed blocks
POST https://<base-url>/RunWorkflow
Body JSON structure: RunMetadataApiDto Body example 1 for running by default:
{
"workflowId": "0fdfd78c-258f-49ed-9e8c-faef9d6598fa"
}
Body example 2 for running from start till block #2:
{
"workflowId": "0fdfd78c-258f-49ed-9e8c-faef9d6598fa",
"runTillBlock": 2
}
Body example 3 for running of blocks between #2 and #4:
{
"workflowId": "0fdfd78c-258f-49ed-9e8c-faef9d6598fa",
"runFromBlock": 2,
"runTillBlock": 4
}
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
Workflow will now run
Response (status 401) Status Code: 401; Unauthorized
WorkflowScheduler
Sets ON/OFF a workflow scheduler. The scheduler frequency should be set in Quartz CRON format (https://www.freeformatter.com/cron-expression-generator-quartz.html) or one of options allowed in organization settings: 5 min, 30 min, 1 hour, 6 hour, 12 hour, Daily
POST https://<base-url>/WorkflowScheduler
Body JSON structure: UpdateWorkfowSchedulerApiDto
Body example 1:
{
"workflowId": "0fdfd78c-258f-49ed-9e8c-faef9d6598fa",
"isScheduled": true,
"scheduleFrequency": "0 4/5 * ? * * *"
}
Body example 2:
{
"workflowId": "0fdfd78c-258f-49ed-9e8c-faef9d6598fa",
"isScheduled": true,
"scheduleFrequency": "5 min"
}
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
Workflow Scheduler enabled
or
Workflow Scheduler disabled
Response (status 401) Status Code: 401; Unauthorized
Webhook APIs
WebhookQueue
Get webhook queue for workflow Input parameters: workflowId - workflow Id
GET https://<base-url>/GetWebhookQueue/[workflowId]
Body JSON structure: WebhookRunApiRequest All fields are optional. Dedault values: page=0, size=50.
Body example 1:
{
"page": 0,
"size": 10,
"searchFrom": "2025-08-28",
"searchTo": "2025-09-27"
}
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
{
"items": [
{
"webhookId": "ada51257-4679-4271-87ed-ef56692b7c04",
"status": "New",
"createDateTimeUTC": "2025-08-27T10:00:12.3847256",
"errorCounter": 3,
"nextScheduleDateTimeUTC": "2025-08-27T11:54:00",
"no": 1
},
{
"webhookId": "4bab8552-9c18-4237-b58c-2f2afa3de871",
"status": "New",
"createDateTimeUTC": "2025-08-27T10:00:13.0100991",
"errorCounter": 4,
"nextScheduleDateTimeUTC": "2025-08-27T14:21:00",
"no": 3
}
],
"length": 2,
"isLast": true,
"workflowSettings": {
"isAutoRunPaused": true,
"isWebhookActive": true
}
}
Response (status 401) Returned if the Authorization is incorrect or missing.
Response (status 500) Undeclared RegisteredCanvasWorkflow key
WebhookHistory
Get webhook history for workflow Input parameters: workflowId - workflow Id
GET https://<base-url>/GetWebhookHistory/[workflowId]
Body JSON structure: WebhookRunApiRequest All fields are optional. Dedault values: page=0, size=50.
Body example 1:
{
"page": 0,
"size": 10,
"searchFrom": "2025-08-28",
"searchTo": "2025-09-27"
}
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access
Response (status 200)
{
"items": [
{
"webhookId": "11223628-2e0b-4a5c-bc05-f01e0dca3f12",
"status": "Error",
"createDateTimeUTC": "2025-08-27T10:00:09.1449075",
"errorCounter": 2,
"deleteFromQueueDateTimeUTC": "2025-08-27T11:24:47.7866667",
"no": 358
},
{
"webhookId": "c643c782-f5ea-4278-a776-18db6a830d65",
"status": "Error",
"createDateTimeUTC": "2025-08-27T10:00:10.1045857",
"errorCounter": 2,
"deleteFromQueueDateTimeUTC": "2025-08-27T11:24:46.1666667",
"no": 357
},
{
"webhookId": "1757eeeb-d447-48fe-a9cc-67631244d0f1",
"status": "Ready",
"createDateTimeUTC": "2025-08-27T10:00:07.4162098",
"errorCounter": 0,
"deleteFromQueueDateTimeUTC": "2025-08-27T11:24:44.0033333",
"no": 356
},
{
"webhookId": "74e37c3a-bbcc-4fbb-bd41-0ea8857148f1",
"status": "Ready",
"createDateTimeUTC": "2025-08-27T11:06:49.7355595",
"errorCounter": 0,
"deleteFromQueueDateTimeUTC": "2025-08-27T11:24:25.69",
"no": 355
},
{
"webhookId": "281ffc3e-5c45-45fc-84d8-20c3a72ec9d7",
"status": "Ready",
"createDateTimeUTC": "2025-08-27T11:06:49.3562023",
"errorCounter": 0,
"deleteFromQueueDateTimeUTC": "2025-08-27T11:24:07.85",
"no": 354
}
],
"length": 67,
"isLast": false,
"workflowSettings": {
"isAutoRunPaused": true,
"isWebhookActive": true
}
}
Response (status 401) Returned if the Authorization is incorrect or missing.
Response (status 500) Undeclared RegisteredCanvasWorkflow key
Webhook
Get webhook by Id Input parameters: webhookId - webhook Id
GET https://<base-url>/GetWebhook/[webhookId]
Response (status 200)
{
"id": "11223628-2e0b-4a5c-bc05-f01e0dca3f12",
"webhookValue": "{\"secret\": \"b97b5f60-f650-42c4-90c9-cbddb0b13fa4\",\"headers\": {\"accept-Encoding\": "gzip, deflate, br, zstd",\"accept-Language\": \"en-US,en;q=0.9,ru;q=0.8,pl;q=0.7\",\"cache-Control\": \"max-age=0\",\"cookie\": \"__hs_cookie_cat_pref=1:true_2:true_3:true;\",\"host\": \"canvastest.connectmyapps.com\",\"user-Agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36\",\"x-Forwarded-For\": \"63.34.153.90\"},\"params\": {},\"body\": \"\", \"jsonBody\": {\"id\":1,\"state\":\"approved\"},\"method\": \"GET\",\"path\": \"/api/Webhooks/RunWorkflow/5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED/810b3c61-9b04-4d68-b9bb-a8d44d358845\"}",
"createDateTimeUTC": "2025-08-27T10:00:09.1266269",
"modifyDateTimeUTC": null,
"workflowId": "810b3c61-9b04-4d68-b9bb-a8d44d358845"
}
Response (status 401) Returned if the Authorization is incorrect or missing.
Response (status 204) No content
SandboxWebhook
Get webhook value from sandbox Input parameters: workflowId - workflowId Id
GET https://<base-url>/GetSandboxWebhookValue/[workflowId]
Response (status 200)
{
"secret": "b97b5f60-f650-42c4-90c9-cbddb0b13fa4",
"headers": {
"accept-Encoding": "gzip, deflate, br, zstd",
"accept-Language": "en-US,en;q=0.9,ru;q=0.8,pl;q=0.7",
"cache-Control": "max-age=0",
"cookie": "__hs_cookie_cat_pref=1:true_2:true_3:true;",
"host": "canvastest.connectmyapps.com",
"user-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36",
"x-Forwarded-For": "63.34.153.90"
},
"params": {},
"body": "",
"jsonBody": {"id":1,"state":"approved"},
"method": "GET",
"path": "/api/Webhooks/RunWorkflow/5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED/810b3c61-9b04-4d68-b9bb-a8d44d358845"
}
Response (status 401) Returned if the Authorization is incorrect or missing.
Response (status 500) Undeclared RegisteredCanvasWorkflow key
api.* requests (api.get/api.post/api.send)
ApiGet
Get API application request (api.get). Input parameters: url - url with request parameters, srv - optional parameter. CMA ApiConnector server name or baseUrl. Leave it empty by default, if should be got from application configurations
GET https://<base-url>/ApiGet?url=quin/apikeys
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 AppKey:8F835BACC9154836AA3E043A4122E7E9 SessionKey:F952D4ECB8544C0A9DA233CAAD790933D4FB2AF59F2C4EF19683FCB44D66F71E ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access AppKey and SessionKey - registerred application headers
Response (status 200)
[
{
"id": 93560,
"groupId": 2889,
"groupIdSpecified": true,
"extGroupId": null,
"name": "Unit 1",
"extUnitId": null,
"API_key": "xxXXyyYYzzZZ",
"extApplicationId": "test1",
"districtId": 1,
"districtIdSpecified": true,
"costCentreSpecified": false,
"costCentreExtCode": null,
"validationErrors": null
},
.....
{
"id": 56789,
"groupId": 6751,
"groupIdSpecified": true,
"extGroupId": null,
"name": "Unit 2",
"extUnitId": null,
"API_key": "aaAAbbBBccCC",
"extApplicationId": "test1",
"districtId": 1,
"districtIdSpecified": true,
"costCentreSpecified": false,
"costCentreExtCode": null,
"validationErrors": null
}
]
Response (status 401) Returned if the Authorization is incorrect or missing.
Response (status 400) Returned if incorrect application/session keys are specified
ApiPost
Post API application request (api.post). Input parameters: url - url with request parameters, srv - optional parameter. CMA ApiConnector server name or baseUrl. Leave it empty by default, if should be got from application configurations
POST https://<base-url>/ApiPost?url=quin%2FUpdateEmployees%3Fapikey%3DXXXXXXXXXX%26skipEmptyFields%3Dtrue
Body:
{
"JsonData": "[{\"id\": 2937139,\"badgeNo\": \"567544\",\"givenName\": \"Arild\",\"familyName\": \"Born\"}]"
}
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 AppKey:8F835BACC9154836AA3E043A4122E7E9 SessionKey:F952D4ECB8544C0A9DA233CAAD790933D4FB2AF59F2C4EF19683FCB44D66F71E ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access AppKey and SessionKey - registerred application headers
Response (status 200)
[
{
"badgeNo": "567544",
"loginId": null,
"givenName": "Arild",
"familyName": "Born",
"restId": 91460,
"restIdSpecified": true,
"email": "arild.born.demo@connectmyapps.com",
.....
"groupRoles": null,
"validationErrors": []
}
]
Response (status 401) Returned if the Authorization is incorrect or missing.
Response (status 400) Returned if incorrect application/session keys are specified
ApiSend
Send API application request (api.send). Input parameters: shortName - application ShortName
POST https://<base-url>/ApiSend/quin
Body:
{"verb": "GET","requestUrl": "apikeys"}
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 AppKey:8F835BACC9154836AA3E043A4122E7E9 SessionKey:F952D4ECB8544C0A9DA233CAAD790933D4FB2AF59F2C4EF19683FCB44D66F71E ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access AppKey and SessionKey - registerred application headers
Response (status 200)
[
{
"id": 93560,
"groupId": 2889,
"groupIdSpecified": true,
"extGroupId": null,
"name": "Unit 1",
"extUnitId": null,
"API_key": "xxXXyyYYzzZZ",
"extApplicationId": "test1",
"districtId": 1,
"districtIdSpecified": true,
"costCentreSpecified": false,
"costCentreExtCode": null,
"validationErrors": null
},
.....
{
"id": 56789,
"groupId": 6751,
"groupIdSpecified": true,
"extGroupId": null,
"name": "Unit 2",
"extUnitId": null,
"API_key": "aaAAbbBBccCC",
"extApplicationId": "test1",
"districtId": 1,
"districtIdSpecified": true,
"costCentreSpecified": false,
"costCentreExtCode": null,
"validationErrors": null
}
]
Response (status 401) Returned if the Authorization is incorrect or missing.
Response (status 400) Returned if incorrect application/session keys are specified
myVault.* requests
MyVaultSet
Sets myVault value for workflow Input parameters: workflowId - workflow Id, key - myVault key Body - myVault value (any)
POST https://<base-url>/MyVaultSet/810b3c61-9b04-4d68-b9bb-a8d44d358845/bb
Body:
{
"JsonData": "hello"
}
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access AppKey and SessionKey - registerred application headers
Response (status 200)
true
MyVaultSetGlobal
Sets myVault value for account Input parameters: accountId - account Id, key - myVault key Body - myVault value (any)
POST https://<base-url>/MyVaultSetGlobal/810b3c61-9b04-4d68-b9bb-a8d44d358845/bb
Body:
{
"JsonData": "hello"
}
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access AppKey and SessionKey - registerred application headers
Response (status 200)
true
MyVaultGet
Returns myVault value for workflow. Input parameters: workflowId - workflow Id, key - myVault key
GET https://<base-url>/MyVaultGet/810b3c61-9b04-4d68-b9bb-a8d44d358845/bb
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access AppKey and SessionKey - registerred application headers
Response (status 200)
hello
Response (status 401) Returned if the Authorization is incorrect or missing.
Response (status 400) Returned if incorrect application/session keys are specified
MyVaultGetGlobal
Returns myVault value for account. Input parameters: accountId - account Id, key - myVault key
GET https://<base-url>/MyVaultGetGlobal/810b3c61-9b04-4d68-b9bb-a8d44d358845/bb
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access AppKey and SessionKey - registerred application headers
Response (status 200)
hello
Response (status 401) Returned if the Authorization is incorrect or missing.
Response (status 400) Returned if incorrect application/session keys are specified
MyVaultRemove
Removes myVault key/value for workflow Input parameters: workflowId - workflow Id, key - myVault key
GET https://<base-url>/MyVaultRemove/810b3c61-9b04-4d68-b9bb-a8d44d358845/bb
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access AppKey and SessionKey - registerred application headers
Response (status 200)
true
Response (status 401) Returned if the Authorization is incorrect or missing.
MyVaultRemoveGlobal
Removes myVault key/value for account Input parameters: accountId - account Id, key - myVault key
GET https://<base-url>/MyVaultRemoveGlobal/810b3c61-9b04-4d68-b9bb-a8d44d358845/bb
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access AppKey and SessionKey - registerred application headers
Response (status 200)
true
Response (status 401) Returned if the Authorization is incorrect or missing.
MyVaultContains
Checks if myVault contains key for workflow Input parameters: workflowId - workflow Id, key - myVault key
GET https://<base-url>/MyVaultContains/810b3c61-9b04-4d68-b9bb-a8d44d358845/bb
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access AppKey and SessionKey - registerred application headers
Response (status 200)
true
Response (status 401) Returned if the Authorization is incorrect or missing.
MyVaultContainsGlobal
Checks if myVault contains key for account Input parameters: accountId - account Id, key - myVault key
GET https://<base-url>/MyVaultContainsGlobal/810b3c61-9b04-4d68-b9bb-a8d44d358845/bb
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access AppKey and SessionKey - registerred application headers
Response (status 200)
true
Response (status 401) Returned if the Authorization is incorrect or missing.
Others APIs
GetFunctions
Returns all fx-functions
GET https://<base-url>/GetFunctions
Headers: Consumer:5D1AEF05263B497182992E324517FFFD0FED85FBEC2342B19CE02AB5ED62D6ED SecretKey:agl20ad-d53b-478c-90bd-060c616d37b7 ManagedAccountId:be4f3f1e-0e6d-4f68-b8d8-546163c5dfad
ManagedAccountId - is an optional header. You need to use it if you want to manage some account and get data to which account has access AppKey and SessionKey - registerred application headers
Response (status 200)
[
{
"id": "fe666490-0166-4c9b-a3bc-59614a51f462",
"name": "addDays",
"package": null,
"isAsync": false,
"arguments": {
"value": {
"isOptional": false,
"defaultValue": null,
"type": "string"
},
"days": {
"isOptional": true,
"defaultValue": "0",
"type": "number"
}
},
"script": "let d = !value ? new Date() : new Date(value);\r\nlet newDate = new Date(d);\r\nnewDate.setDate(newDate.getDate() + days);\r\nreturn newDate;"
},
....
{
"id": "13a92173-d18d-48b1-80e4-01b820300d6b",
"name": "utcNow",
"package": null,
"isAsync": false,
"arguments": {},
"script": "return fx.now().toISOString();"
}
]
Response (status 401) Returned if the Authorization is incorrect or missing.