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
- Workflow APIs
- Workflows
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.
Workflow 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)
[
{
"id": "bbe52876-aca2-4ece-ba31-11e0d98ddc19",
"name": "Quinyx Employee Export Into FTP(CSV)",
"description": "Quinyx Employee Export Into FTP(CSV)",
"dateCreated": "2020-08-14T17:12:29.7856246",
"dateModified": "2022-03-17T13:54:07.0394189",
"state": "Published",
"version": "0.1.7",
"draftIsCommitted": false,
"dateCommitted": "2021-02-26T16:51:29.3588575",
"organizationId": null,
"applications": [
"QUIN",
"FTP"
],
"chain": [
{
"uniqueBlockId": "02d1424a-da90-4c12-9c28-96162e624bd7",
"blockName": "API - Get Employees",
"variables": {
"apiKeys": [],
"badgeNo": null
}
},
{
"uniqueBlockId": "25782580-aabe-4a03-be1c-bc45dacd7e60",
"blockName": "FTP Upload",
"variables": {
"filename": "NY_Employees_{date:yyyy-MM-dd-HH-mm}",
"fileformat": "csv",
"filepath": "/"
}
}
]
},
{
"id": "3b76ca61-bca9-4995-90ba-7190c1dd567b",
"name": "MyStore Customers Send email",
"description": "MyStore Customers Send email",
"dateCreated": "2021-11-08T11:39:58.814",
"dateModified": "2021-11-09T15:14:14.836809",
"state": "Published",
"version": "0.0.7",
"draftIsCommitted": true,
"dateCommitted": "2021-11-09T15:14:18.6103605",
"organizationId": null,
"applications": [
"MYST2",
"CMAF"
],
"chain": [
{
"uniqueBlockId": "729e4eb5-8022-43bb-b75b-524b1cb5f5b5",
"blockName": "MyStore Get Customers",
"variables": {}
},
{
"uniqueBlockId": "a510ddbf-2350-4ab6-9014-c81d0aa3f013",
"blockName": "Send email",
"variables": {
"subject": "MyStore Customers",
"fileName": "AllCustomers",
"note": "Please see your customers in MyStore"
}
}
]
},
{
"id": "018fda95-a62f-4f0b-af12-3cfcd9146def",
"name": "Transferring of Orders & Customers",
"description": "Transferring of Orders & Customers",
"dateCreated": "2020-08-14T17:22:57.2244016",
"dateModified": "2020-12-10T13:02:23.1685229",
"state": "Draft",
"version": null,
"draftIsCommitted": null,
"dateCommitted": null,
"organizationId": null,
"applications": [
"MYST2",
"FIKE"
],
"chain": [
{
"uniqueBlockId": "a43e433d-9def-4062-9e89-6ff01824f980",
"blockName": "MyStore Get orders",
"variables": {
"status": "2",
"age": null
}
},
{
"uniqueBlockId": "d362db53-c46f-4cf8-8bee-9a105ecde130",
"blockName": "Get all contacts",
"variables": {
"testValue": "name"
}
},
{
"uniqueBlockId": "6cf1b697-4145-4659-985c-4c9b76a57710",
"blockName": "Post orders & customers",
"variables": {
"shippingtext": "Shipping"
}
}
]
}
]
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",
"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"
]
}
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 * ? * *\"}",
"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 ? * * *\"}",
"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 *\"}",
"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 * ? * *\"}",
"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 * ? * *\"}",
"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 ? * * *\"}",
"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,
"schedulerFrequency": "{\"cronSchedule\":\"0 0 0/1 ? * * *\"}",
"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",
"dateNextSchedule": "2022-04-05T17:00:00+00:00",
"regApplicationIds": [
"281686d9-aedd-4359-89b4-8f878ad43b35",
"03548816-f945-4bb2-b66e-950dff826fb8"
],
"currentBlock": 3
}
Workflow (post)
Registers a new workflow based on template
POST https://<base-url>/Workflow
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",
"variables": {
"apiKeys": ["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
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",
"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": {
"table": [
{
"source": "1",
"target": "2"
}
],
"default": "1"
},
"testValue1": "123",
"country": "2",
"city": "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"
}
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 CRON format.
POST https://<base-url>/WorkflowScheduler
Body JSON structure: UpdateWorkfowSchedulerApiDto
Body example:
{
"workflowId": "0fdfd78c-258f-49ed-9e8c-faef9d6598fa",
"isScheduled": true,
"scheduleFrequency": "{\"cronSchedule\":\"0 0/5 * ? * * *\"}"
}
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