WorkflowGen features an incoming webhook application that allows users to interact with WorkflowGen from external sources by exchanging JSON payloads using HTTP POST requests. The application supports multiple types of operations, such as creating a new request, completing an action, and some process deployment operations like creating a new process from an XPDL.
In addition to the standard WorkflowGen installation, the following components are required:
Visual C++ Redistributable
✏️ Note: This library is required if you encounter the error The specified module could not be found
regarding the edge
and edge-js
libraries when accessing the /wfgen/graphql
, /wfgen/hooks
, or /wfgen/scim
web apps.
For information on the installation procedure, see the WorkflowGen Technical Guide.
The maximum query content length for incoming webhooks can be set by configuring the maxAllowedContentLength
property in the WorkflowGen web.config
file. The following example shows how to configure this property as 1 MB (note that the value should always be specified in bytes, so the value in the example is 1,024,000 bytes). The default value is 30,000,000 bytes.
<system.webServer><security><requestFiltering><requestLimits maxAllowedContentLength="1024000" /></requestFiltering></security></system.webServer>
You can configure the local or remote folder paths where files used by FILE type parameters are located using the Input file allowed folders setting In the Webhooks section on the Configuration Panel Integration tab. (Alternately, you can add the folder names separated by commas to the HooksInputFileAllowedFolders
parameter in the WorkflowGen web.config
file.)
When using file uploads, you don't need to include the original file folder.
To disallow input file allowed folders, leave this field empty (or the parameter undefined). To allow certain folders only, enter comma-separated values according to the table below:
Value | Description |
Empty | No folders allowed |
| All folders allowed |
| All folders on drive |
| All subfolders in a specific folder |
| All
|
| Specific folder only |
You can configure allowed HTTP URLs for input files using the Input file allowed HTTP URLs setting in the Webhooks section on the Control Panel Integration tab. (Alternately, you can add the folder names separated by commas to the HooksInputFileAllowedHttpUrls
parameter in the WorkflowGen web.config
file.)
To disallow file uploads using HTTP and/or HTTPS URLs, leave the field empty (or the parameter undefined). To allow certain URLs only, enter comma-separated values according to the table below:
Value | Description |
Empty | No HTTP or HTTPS URLs allowed |
| All HTTP and HTTPS URLs allowed |
| HTTPS URLs only |
| HTTP URLs only |
| HTTP from a specific domain only |
| HTTP from a specific folder only |
| All files and folders whose names start with
|
| Specific file only |
In the Webhooks section on the Integration tab in the Administration Module Configuration Panel, enter the maximum input file size in kilobytes in the Maximum input file size (kB) field.
Alternately, you can set the maximum input file content size in kilobytes as the value of the HooksMaxInputFileSize
parameter in the WorkflowGen web.config
file.
When working with FILE type parameters content encoded in base64, you must enter the maximum input file content size in kilobytes in the Maximum input file content size (kB) field in the Webhooks section on the Integration tab in the Administration Module Configuration Panel.
Alternately, you can set the maximum input file content size in kilobytes as the value of the HooksMaxInputFileContentSize
parameter in the WorkflowGen web.config
file.
FILE type data content is only recommended for small files under 1 MB.
WorkflowGen is installed with the following default webhooks settings (located under iisnode
in \wfgen\hooks\web.config
):
nodeProcessCountPerApplication="1"maxConcurrentRequestsPerProcess="1024"
With these settings, only one node.exe
instance will handle HTTP requests. This should be sufficient in most cases, but you can optimize performance if needed by adjusting these values based on the number of potential concurrent requests.
To create a new incoming webhook application in your WorkflowGen application, click the Add Application button on the Applications page. Then, choose Incoming webhook from the Application type drop-down list, enter the Name and Description, and click Save.
The Applications page will now display your incoming webhook application information, including the application URL. This is the URL you should use to send WorkflowGen incoming webhooks. The last component of this URL corresponds to a token that WorkflowGen will use to identify your incoming webhooks.
You should fill in the Impersonate username textbox with the WorkflowGen username you use to perform your desired operations. Be aware that your impersonated user must have your asked-operation-required rights to complete the action; if not, you will receive a security error on your response payload. As well, if the impersonate username is not set, the workflow engine service default identity will be used (as defined in the Security section on the Integration tab in the Configuration Panel).
The generated URL and its associated token must remain private and not exposed to end-users in client-side (in JavaScript, for example). You should treat the token with the same level of security as you would a password.
If the token used in the incoming webhook URL is missing or invalid, a 404
status code will be returned. If the associated user is invalid, archived, or inactive, a 403
status code will be returned. In both cases, the response will contain a descriptive error message.
The incoming webhook application receives your HTTP POST request payload formatted as a JSON object.
Using the URL provided, you can post HTTP requests from external applications (e.g. Postman) to WorkflowGen in order to execute the available operations in your WorkflowGen application. For operations that require you to provide an object ID, the object ID value can be retrieved by using the GraphQL API. In most cases, object numbers can be used instead of IDs in operation payloads.
In case of an error, you will get a response payload providing error details such as:
{"error": "Advantys.Workflow.ServiceFacade: CreateRequest error: A process ID or name is required"}
The requests should respect the structure shown in this example, where operation
refers to the name of the operation to execute, and args
contains the input
node that groups all of the request parameters to perform the operation.
To create a new request, the processName
parameter is required. The processVersion
parameter is optional and is used to find the correct process you want to use to create your request.
curl -u yourusername -X POST -H "Content-Type: application/json" -d '{"operation": "createRequest","args": {"input": {"processName": "2_LEVELS_APPROVAL","processVersion": 1}}}' http://localhost/wfgen/hooks/yourtoken
The response payload will be structured as follows:
{"clientMutationId": null,"requestId": "UmVxdWVzdDoxNzI4","number": 10,"onBehalfOf": null,"onBehalfOfUserName": null}
Parameter | Description |
| Process name (required) |
| Process version, used to find the correct process you want to use to create the request |
| This parameter will be null if the request creator did not define it in the request payload |
| ID of newly created request |
| Number of newly created request |
| This parameter contains the delegator ID; however, if the request was not created in delegation mode, its value will be null |
| This parameter contains the delegator username; however, if the request was not created in delegation mode, its value will be null |
As of version 7.17.0, incoming webhooks now offer a new endpoint that supports the OpenAPI v2 specification for operation definitions and another endpoint for operation execution. This allows for seamless integration with other OpenAPI-ready solutions such as Swagger, Microsoft Flow, Azure Logic Apps and Postman.
Use this endpoint to retrieve webhook operation definitions based on the OpenAPI v2 specification (in JSON format).
URI: /wfgen/hooks/openapi/v2
Use this endpoint to execute a webhook operation using HTTP POST, replacing :operation
with the name of the incoming webhook operation (e.g. createRequest
).
URI: /wfgen/hooks/operations/:operation
:operation
: Name of the incoming webhook operation defined in the URI
✏️ Note: The operation name is not required inside the request payload.
x-wfgen-hooktoken
: Webhook token value specified in the HTTP request header, which is the same token value as used in a classic incoming webhooks URL
Properties with an asterisk *
next to their name
Other required or optional parameters specific to the webhook operation might be needed.
To create a new request from the webhooks API, make sure that sub-process mode is enabled with public access on the target process. (See the Process form section in the WorkflowGen Administration Guide for more information.)
{"operation": "createRequest","args": {"input": {"processName": "2_LEVELS_APPROVAL","processVersion": 1}}}
{"clientMutationId": null,"requestId": "UmVxdWVzdDoxNzI4","number": 1728,"onBehalfOf": null,"onBehalfOfUserName": null}
A parameter's array can be included in the createRequest
operation payload. Be aware that a data with the same name and data type must previously exist in the process for each parameter in the array to store the parameter's value. The following example shows how to send parameters corresponding to the four supported data types (TEXT, NUMERIC, DATETIME, and FILE).
{"operation": "createRequest","args": {"input": {"processName": "2_LEVELS_APPROVAL","processVersion": 1,"parameters": [{"name": "TEXT","textValue": "My text parameter"},{"name": "NUMERIC","numericValue": 5},{"name": "DATE","dateTimeValue": "2017-02-23T20:46:00Z"},{"name": "FILE","fileValue": {"name": "TestFile.txt","contentType": "text/plain","size": 616,"url": "file:///c:/TestFile.txt","updatedAt": "2017-02-21T15:06:38Z"}}]}}}
{"clientMutationId": null,"requestId": "UmVxdWVzdDoxNzY1","number": 1765,"onBehalfOf": null,"onBehalfOfUserName": null}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Process identifier with the pattern |
| String | Process name |
| Int | Process version, used to find the correct process you want to use to create the request |
| Boolean | Indicates if the process is in test |
| Array | Array of parameters (see Parameter definitions) |
| Base64-encoded string | User identifier that is used by the user to perform the mutation on behalf of another person, with the pattern |
A request dataset context can be updated by adding a parameter array. In this case a request number or a request ID should be provided.
This operation requires users to have system access to perform it. This can be configured in the System operations allowed users field under Security on the Integration tab in the Configuration Panel.
{"operation": "updateRequestDataset","args": {"input": {"number": 1750,"parameters": [{"name": "NEW_PARAMETER","textValue": "My parameter"}]}}}
{"operation": "updateRequestDataset","args": {"input": {"id": "UmVxdWVzdDoxMDAw","parameters": [{"name": "NEW_PARAMETER","textValue": "My parameter"}]}}}
{"clientMutationId": null,"requestId": "UmVxdWVzdDoxNzIx","parameters": [{"name": "NEW_PARAMETER","textValue": "My parameter"}]}
For more information on FILE parameter manipulations when sent within incoming webhook payloads, see the File upload section.
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Request identifier with the pattern |
| Int | Request number |
| Array | Array of parameters (see Parameter definitions) |
You can cancel a request by using the request number or the request ID.
{"operation": "cancelRequest","args": {"input": {"number": 1728}}}
{"operation": "cancelRequest","args": {"input": {"id": "UmVxdWVzdDoxNzI4"}}}
{"clientMutationId": null,"requestId": "UmVxdWVzdDoxNzI4","number": 1728,"onBehalfOf": null,"onBehalfOfUserName": null}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Request identifier with the pattern |
| Int | Request number |
| Boolean | Indicates if participant members have to be notified |
| Base64-encoded string | User identifier that is used by the user to perform the mutation on behalf of another person, with the pattern |
A request can be deleted by using the request number or the request ID.
{"operation": "deleteRequest","args": {"input": {"number": 1728}}}
{"operation": "deleteRequest","args": {"input": {"id": "UmVxdWVzdDoxNzI4"}}}
{"clientMutationId": null}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Request identifier with the pattern |
| Int | Request number |
To complete an action, provide the request number and the action number, or the action ID.
{"operation": "completeAction","args": {"input": {"requestNumber": 1765,"number": 1,"parameters": [{"name": "NEW_PARAMETER","textValue": "My parameter"}]}}}
{"operation": "completeAction","args": {"input": {"id": "QWN0aW9uOjE3NTktLS0x"}}}
{"clientMutationId": null,"actionId": "QWN0aW9uOjE3NTktLS0x","number": 1,"requestNumber": 1759,"onBehalfOf": null,"onBehalfOfUserName": null}
To complete an action, a parameter array can be included in the request payload arguments.
{"operation": "completeAction","args": {"input": {"requestNumber": 1765,"number": 1,"parameters": [{"name": "NEW_PARAMETER","direction": "IN","type": "TEXT","textValue": "My parameter"}]}}}
{"clientMutationId": null,"actionId": "QWN0aW9uOjE3NjUtLS0x","number": 1,"requestNumber": 1765,"onBehalfOf": null,"onBehalfOfUserName": null}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Action identifier with the pattern |
| Int | Request number |
| Int | Action number |
| String | Activity name |
| Array | Array of parameters (see Parameter definitions) |
| Base64-encoded string | User identifier that is used by the user to perform the mutation on behalf of another person, with the pattern |
{"operation": "completeFormAction","args": {"input": {"requestNumber": 1765,"number": 1,"parameters": [{"name": "NEW_PARAMETER","textValue": "My parameter"}]}}}
{"clientMutationId": null,"actionId": "QWN0aW9uOjE3NjUtLS0x","number": 1,"requestNumber": 1765,"onBehalfOf": null,"onBehalfOfUserName": null}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Action identifier with the pattern |
| Int | Request number |
| Int | Action number |
| String | Activity name |
| Array | Array of parameters (see Parameter definitions) |
| Base64-encoded string | User identifier used by the user to perform the mutation on behalf of another person with the pattern |
To cancel an action, provide the request number and the action number, or the action ID. The following conditions must be met:
The viewer and the user (if they don't share the same identity, as in delegation mode) must have access to the request.
The action must be open.
The action must have a cancel or default exception defined in the transition.
The viewer is:
an administrator or process folder manager OR
a supervisor with cancellation rights OR
the action assignee.
{"operation": "cancelAction","args": {"input": {"requestNumber": 1759,"number": 2}}}
{"operation": "cancelAction","args": {"input": {"id": "QWN0aW9uOjEwMDAtLS0x"}}}
{"clientMutationId": null,"actionId": "QWN0aW9uOjE3NTktLS0y","number": 2,"requestNumber": 1759,"onBehalfOf": null,"onBehalfOfUserName": null}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Action identifier with the pattern |
| Int | Request number |
| Int | Action number |
| String | Cancellation type:
|
| Object { String, String } | Exception:
|
| Base64-encoded string | User identifier used by the user to perform the mutation on behalf of another person with the pattern |
All of the actions with the same name in a request can be cancelled at the same time by using their name in this operation payload. The following conditions are met:
The viewer and the user (if they do not share the same identity, as in delegation mode) must have access to the request.
The action must be open.
The action must have a cancel or default exception defined in the transition.
The viewer is:
an administrator or a process folder manager OR
a supervisor with cancellation rights OR
the action assignee.
{"operation": "cancelRequestActionsByName","args": {"input": {"requestNumber": 4399,"activityName": "Initiates"}}}
{"clientMutationId": null,"actionIds": ["QWN0aW9uOjQzOTktLS0x","QWN0aW9uOjQzOTktLS0y","QWN0aW9uOjQzOTktLS0z"],"onBehalfOf": null,"onBehalfOfUserName": null}
Property | Type | Description |
| String | Client mutation identifier |
| Int | Request number |
| String | Activity name |
| String | Cancellation type:
|
| Object { String, String } | Exception:
|
| Base64-encoded string | User identifier used by the user to perform the mutation on behalf of another person with the pattern |
To assign an action, provide the request number and the action number, or the action ID; you must also provide the assigneeUserName
or the assigneeId
.
{"operation": "assignAction","args": {"input": {"requestNumber": 1751,"number": 2,"assigneeUserName": "johnsmith"}}}
{"operation": "assignAction","args": {"input": {"id": "QWN0aW9uOjEwMDAtLS0x","assigneeId": "QXNzaWduZWU6MQ=="}}}
{"clientMutationId": null,"actionId": "QWN0aW9uOjE3NTEtLS0y","number": 2,"requestNumber": 1751,"onBehalfOf": null,"onBehalfOfUserName": null}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Action identifier with the pattern |
| Base64-encoded string | User identifier of the person assigned to the action with the pattern |
| Int | Request number |
| Int | Action number |
| Base64-encoded string | User identifier used by the user to perform the mutation on behalf of another person with the pattern |
To cancel an action assignment, you should provide the request number and the action number, or the action ID.
{"operation": "cancelActionAssignment","args": {"input": {"requestNumber": 1751,"number": 2}}}
{"operation": "cancelActionAssignment","args": {"input": {"id": "QWN0aW9uOjEwMDAtLS0x"}}}
{"clientMutationId": null,"actionId": "QWN0aW9uOjE3NTEtLS0y","number": 2,"requestNumber": 1751,"onBehalfOf": null,"onBehalfOfUserName": null}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Action identifier with the pattern |
| Int | Request number |
| Int | Action number |
| Base64-encoded string | User identifier used by the user to perform the mutation on behalf of another person with the pattern |
The incoming webhook application lets users add processes and views to their favorites lists using the process or view IDs.
{"operation": "createFavorite","args": {"input": {"itemId": "UHJvY2VzczoxMTA="}}}
The above code will create a favorite using the process or view description, but adding a custom description is also possible, as shown in the following example:
{"operation": "createFavorite","args": {"input": {"itemId": "UHJvY2VzczoxMTA=","description": "My custom description"}}}
{"clientMutationId": null,"favoriteId": "RmF2b3JpdGU6MTQ="}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Process or view identifier with the pattern |
| String | Favorite description |
The incoming webhook application lets users update an existing favorite process or view by using its favorite ID.
{"operation": "updateFavorite","args": {"input": {"id": "RmF2b3JpdGU6MTQ=","description": "Updated description"}}}
{"clientMutationId": null,"favoriteId": "RmF2b3JpdGU6MTQ="}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Favorite identifier with the pattern |
| String | Favorite description |
The incoming webhook application lets users delete an existing favorite process or view from their favorites list by using its favorites ID.
{"operation": "deleteFavorite","args": {"input": {"id": "RmF2b3JpdGU6MTQ="}}}
{"clientMutationId": null}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Favorite identifier with the pattern |
The incoming webhook application lets users add comments to requests. This operation requires that the portal comments feature be enabled.
{"operation": "addComment","args": {"input": {"subjectId": "UmVxdWVzdDo0MzY1","message": "This is my comment"}}}
{"clientMutationId": null,"commentId": "Q29tbWVudDo0MzY1LS0tMg=="}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Request identifier on which the comment will be added with the pattern |
| String | New comment message |
Users can update comments if they are administrators, process manager of the process or process supervisor, or standard users who are members of the process participants, have write permissions, and are the comment author. This operation requires that the portal comments feature be enabled.
{"operation": "updateComment","args": {"input": {"id": "Q29tbWVudDo0MzY1LS0tMg==","message": "This is my updated comment"}}}
{"clientMutationId": null,"commentId": "Q29tbWVudDo0MzY1LS0tMg=="}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Comment identifier with the pattern |
| String | Updated comment message |
The incoming webhook application lets users remove comments from requests. This operation requires that the portal comments feature be enabled.
{"operation": "removeComment","args": {"input": {"id": "Q29tbWVudDo0MzY1LS0tMg=="}}}
{"clientMutationId": null}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Comment identifier with the pattern |
Standard users can only create delegations for themselves; only administrators can create a delegation for another user. This operation requires that the portal delegation feature be enabled.
{"operation": "createDelegation","args": {"input": {"delegatorId": "VXNlcjox","delegateeId": "VXNlcjoy","processId": "UHJvY2Vzczoz","participantId": "TG9jYWxQcm9jZXNzUGFydGljaXBhbnQ6OA==","start": "2017-04-23T18:25:43.000Z","end": "2017-11-23T18:25:43.000Z","notifyDelegatee": true}}}
{"clientMutationId": null,"delegationId": "RGVsZWdhdGlvbjoxMA=="}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | User identifier that is delegating its requests and actions to another person, with the pattern |
| Base64-encoded string | User identifier to whom the requests and actions are delegated from the delegator, with the pattern |
| Base64-encoded string | Process identifier with the pattern |
| Base64-encoded string | Participant identifier, with the pattern |
| DateTime | Indicates the date and time ( |
| DateTime | Indicates the date and time ( |
| Boolean | Indicates if the delegatee should be notified of the delegation |
Standard users can only update delegations for themselves; only administrators can update a delegation for another user. This operation requires that the portal delegation feature be enabled.
{"operation": "updateDelegation","args": {"input": {"id": "RGVsZWdhdGlvbjoxMA==","start": "2018-05-01T00:00:00.000Z","end": "2018-9-01T00:00:00.000Z","notifyDelegatee": true}}}
{"clientMutationId": null,"delegationId": "RGVsZWdhdGlvbjoxMA=="}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Delegation identifier with the pattern |
| Base64-encoded string | User identifier that is delegating its requests and actions to another person, with the pattern |
| Base64-encoded string | User identifier to whom the requests and actions are delegated from the delegator, with the pattern |
| Base64-encoded string | Process identifier with the pattern |
| Base64-encoded string | Participant identifier, with the pattern |
| DateTime | Indicates the date and time ( |
| DateTime | Indicates the date and time ( |
| Boolean | Indicates if the delegatee should be notified of the delegation |
Standard users can only delete their own delegations; only administrators can delete another user's delegations. This operation requires that the portal delegation feature be enabled.
{"operation": "deleteDelegation","args": {"input": {"id": "RGVsZWdhdGlvbjoxMA=="}}}
{"clientMutationId": null}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Delegation identifier with the pattern |
Only administrators can create a category.
{"operation": "createCategory","args": {"input": {"name": "Human resources","description": "Human resources category"}}}
{"clientMutationId": null,"categoryId": "Q2F0ZWdvcnk6Mg=="}
Property | Type | Description |
| String | Client mutation identifier |
| String | Category name |
| String | Category description |
Only administrators can update a category.
{"operation": "updateCategory","args": {"input": {"id": "Q2F0ZWdvcnk6Mg==","name": "My category updated name"}}}
{"clientMutationId": null,"categoryId": "Q2F0ZWdvcnk6Mg=="}
Property | Type | Description |
| String | Client mutation identifier |
| String | Category identifier with the pattern |
| String | Category name |
| String | Category description |
Only administrators can delete a category.
{"operation": "deleteCategory","args": {"input": {"id": "Q2F0ZWdvcnk6Mg=="}}}
{"clientMutationId": null}
Property | Type | Description |
| String | Client mutation identifier |
| String | Category identifier with the pattern |
Only administrators can create a process folder.
{"operation": "createProcessFolder","args": {"input": {"name": "Human Resources processes folder","description": "Human Resources processes folder","managerId": "R2xvYmFsUGFydGljaXBhbnQ6MQ=="}}}
{"clientMutationId": null,"processFolderId": "UHJvY2Vzc0ZvbGRlcjoz"}
Property | Type | Description |
| String | Client mutation identifier |
| String | Process folder name |
| String | Process folder description |
| Base64-encoded string | Process folder manager identifier with the pattern |
Only administrators and the process folder manager can update a process folder.
{"operation": "updateProcessFolder","args": {"input": {"id": "UHJvY2Vzc0ZvbGRlcjoz","name": "Updated process folder name"}}}
{"clientMutationId": null,"processFolderId": "UHJvY2Vzc0ZvbGRlcjoz"}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Process folder identifier with the pattern |
| String | Process folder name |
| String | Process folder description |
| Base64-encoded string | Process folder manager identifier with the pattern |
Only administrators can delete a process folder.
{"operation": "deleteProcessFolder","args": {"input": {"id": "UHJvY2Vzc0ZvbGRlcjoz"}}}
{"clientMutationId": null}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Process folder identifier with the pattern |
This operation creates a process from the process properties. The process name, description, and folder identifier or name are required.
{"operation": "createProcess","args": {"input": {"description": "My new process","folderName": "DEFAULT","name": "My new process"}}}
{"operation": "createProcess","args": {"input": {"fromProcessId": "UHJvY2Vzczoy"}}}
{"clientMutationId": null,"processId": "UHJvY2Vzczoy"}
Property | Type | Description |
| String | Client mutation identifier |
| String | Process access level:
|
| Array of strings | Process categories |
| String | Process description |
| Base64-encoded string | Process folder identifier with the pattern |
| String | Process folder name |
| Base64-encoded string | Process identifier used in new version creation with the pattern |
| String | Process help information email |
| String | Process help information text |
| URI string | Process help information URL |
| Boolean | Indicates if action's associated data is archived when a request is closed |
| Boolean | Indicates if form management is built-in |
| Boolean | Indicates if file content is stored in the database |
| Boolean | Indicates if sub-process mode is enabled |
| Int | Process lead time |
| String | Process lead time duration unit:
|
| Boolean | Indicates if working days/hours are used to compute the lead time |
| Boolean | Indicates if the requester is notified upon request closure |
| String | Process name |
| Boolean | Indicates if the requester is notified upon request closure |
| String | Process state:
|
A process can be created from its XPDL definition.
{"operation": "createProcessFromXpdl","args": {"input": {"addNewParticipantsAsGlobal": false,"addSelfToParticipant": true,"description": "My new process","folderName": "DEFAULT","name": "My new process","xpdl": {"contentType": "text/xml","name": "process.xml","size": 123,"updatedAt": "2017-03-15T15:02:00Z","url": "file:///c:/temp/process.xml"}}}}
{"clientMutationId": null,"processId": "UHJvY2Vzczoy"}
Property | Type | Description |
| String | Client mutation identifier |
| Boolean | Specifies whether or not to import process participants as global participants (can only be used by users with an administrator profile) |
| Boolean | Specifies whether or not to import global participant associations |
| Boolean | Specifies whether or not to add the current user to process participants |
| Base64-encoded string | Process folder identifier with the pattern |
| String | Process folder name |
| Base64-encoded string | Process identifier used when creating a new version with the pattern |
| String | Process name |
| Boolean | Creates a new version if the process already exists |
| String | Process state:
|
| Boolean | Specifies whether or not to import the process version number from the process definition |
| FileInput | Process definition in XPDL format (see FileInput values) |
This operation updates process properties from the process identifier.
{"operation": "updateProcess","args": {"input": {"id": "UHJvY2Vzczoy","name": "New name"}}}
{"clientMutationId": null,"processId": "UHJvY2Vzczoy"}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Process identifier with the pattern |
| String | Process access level:
|
| Array of strings | Process categories |
| String | Process description |
| Base64-encoded string | Process folder identifier with the pattern |
| String | Process help information email |
| String | Process help information text |
| URI string | Process help information URL |
| Boolean | Indicates if action's associated data is archived when a request is closed |
| Boolean | Indicates if form management is built-in |
| Boolean | Indicates if file content is stored in the database |
| Boolean | Indicates if sub-process mode is enabled |
| Int | Process lead time |
| String | Process lead time duration unit:
|
| Boolean | Indicates if working days/hours are used to compute the lead time |
| String | Process name |
| Boolean | Indicates if the requester is notified upon request closure |
| String | Process state:
|
A process can be updated from its XPDL definition. The .xml
file is uploaded by using the multipart file upload feature as shown below.
{"operation": "updateProcessFromXpdl","args": {"input": {"id": "UHJvY2Vzczoy","xpdl": {"contentType": "text/xml","name": "process.xml","size": 123,"updatedAt": "2017-03-15T15:02:00Z","url": "file:///c:/temp/process.xml"}}}}
{"clientMutationId": null,"processId": "UHJvY2Vzczoy"}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Process identifier with the pattern |
| Boolean | Specifies whether or not to import process participants as global participants (can only be used by users with an administrator profile) |
| Boolean | Specifies whether or not to import global participant associations |
| Boolean | Specifies whether or not to add the current user to process participants |
| Boolean | Specifies whether or not to import the process version number from the process definition |
| FileInput | Process definition in XPDL format (see FileInput values) |
A process can be deleted by using the process identifier.
{"operation": "deleteProcess","args": {"input": {"id": "UHJvY2Vzczoy"}}}
{"clientMutationId": null}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Process identifier with the pattern |
{"operation": "createGlobalParticipant","args": {"input": {"name": "My global participant","description": "My global participant description","type": "COORDINATOR","userIds": ["VXNlcjox", "VXNlcjoy"],"groupIds": ["R3JvdXA6MQ=="],"directoryIds": ["RGlyZWN0b3J5OjE="],"coordinatorIds": ["VXNlcjoy"]}}}
{"clientMutationId": null,"participantId": "R2xvYmFsUGFydGljaXBhbnQ6MQ=="}
Property | Type | Description |
| String | Client mutation identifier |
| String | Global participant name |
| String | Global participant type:
|
| String | Global participant description |
| Array of Base64-encoded strings | List of directories (identifier) associated to the global participant with the pattern |
| Array of Base64-encoded strings | List of groups (identifier) associated to the global participant with the pattern |
| Array of Base64-encoded strings | List of users (identifier) associated to the global participant with the pattern |
| Array of Base64-encoded strings | List of coordinators (identifier) associated to the global participant with the pattern |
{"operation": "updateGlobalParticipant","args": {"input": {"id": "R2xvYmFsUGFydGljaXBhbnQ6MQ==""name": "My global participant","description": "My global participant description","type": "COORDINATOR","userIds": ["VXNlcjox", "VXNlcjoy"],"groupIds": ["R3JvdXA6MQ=="],"directoryIds": ["RGlyZWN0b3J5OjE="],"coordinatorIds": ["VXNlcjoy"]}}}
{"clientMutationId": null,"participantId": "R2xvYmFsUGFydGljaXBhbnQ6MQ=="}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Global participant identifier with the pattern |
| String | Global participant name |
| String | Global participant type:
|
| String | Global participant description |
| Array of Base64-encoded strings | List of directories (identifier) associated to the global participant with the pattern |
| Array of Base64-encoded strings | List of groups (identifier) associated to the global participant with the pattern |
| Array of Base64-encoded strings | List of users (identifier) associated to the global participant with the pattern |
| Array of Base64-encoded strings | List of coordinators (identifier) associated to the global participant with the pattern |
{"operation": "deleteGlobalParticipant","args": {"input": {"id": "R2xvYmFsUGFydGljaXBhbnQ6MQ=="}}}
{"clientMutationId": null}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Global participant identifier with the pattern |
To be used with global participant
only.
{"operation": "addProcessParticipantProfile","args": {"input": {"role": "ACTOR""participantId": "R2xvYmFsUGFydGljaXBhbnQ6NQ==","processId": "UHJvY2Vzczox"}}}
{"clientMutationId": null,"processParticipantProfileId": "UHJvY2Vzc1BhcnRpY2lwYW50UHJvZmlsZToxLS0tMTE="}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Process identifier with the pattern |
| Base64-encoded string | Global participant identifier with the pattern |
| String | Supervisor scope query |
| String | Participant role:
|
| Boolean | Indicates if the participant can cancel requests |
| Boolean | Indicates if the participant can read comments |
| Boolean | Indicates if the participant can reassign an action |
| Boolean | Indicates if the participant can view the graphical follow-up |
| Boolean | Indicates if the participant can view statistics |
| Boolean | Indicates if the participant can write comments |
To be used with global participant
only.
{"operation": "updateProcessParticipantProfile","args": {"input": {"role": "SUPERVISOR","id": "UHJvY2Vzc1BhcnRpY2lwYW50UHJvZmlsZToxLS0tMTE="}}}
{"clientMutationId": null,"processParticipantProfileId": "UHJvY2Vzc1BhcnRpY2lwYW50UHJvZmlsZToxLS0tMTE="}
Property | Type | Description |
| String | Client mutation identifier |
| Base64-encoded string | Process participant profile identifier with the pattern |
| String | Supervisor scope query |
| String | Participant role:
|
| Boolean | Indicates if the participant can cancel requests |
| Boolean | Indicates if the participant can read comments |
| Boolean | Indicates if the participant can reassign an action |
| Boolean | Indicates if the participant can view the graphical follow-up |
| Boolean | Indicates if the participant can view statistics |
| Boolean | Indicates if the participant can write comments |
To be used with global participant
only.
{"operation": "removeProcessParticipantProfile","args": {"input": {"id": "UHJvY2Vzc1BhcnRpY2lwYW50UHJvZmlsZToxLS0tMTE="}}}