Incoming Webhooks
Overview
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.
Technical requirements
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 theedge
andedge-js
libraries when accessing the/wfgen/graphql
,/wfgen/hooks
, or/wfgen/scim
web apps.
For security reasons, it is strongly recommended to enable the HTTPS protocol on your IIS server.
For information on the installation procedure, see the WorkflowGen Technical Guide.
Create an incoming webhook application
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.
Important: 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.
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).
Send data in JSON
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:
Curl example
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
and inTest
parameters are optional and are used to find the correct process you want to use to create your request.
Response payload
The response payload will be structured as follows:
Parameters
System access users
Some operations (such as CancelAction
and UpdateRequestDataset
) require users to have system access to perform the operations. This can be configured in the System operations allowed users field under Security on the Integration tab in the Configuration Panel.
Request operations
Create a request
Note: 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.)
Request payload:
Response payload:
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).
Request payload:
Response payload:
Properties
Update a request dataset
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.
Request payloads:
Response payload:
For more information on FILE parameter manipulations when sent within incoming webhook payloads, see the File upload section.
Properties
Cancel a request
You can cancel a request by using the request number or the request ID.
Request payloads:
Response payload:
Properties
Action operations
Complete an action
To complete an action, provide the request number and the action number, or the action ID.
Request payloads:
Response payload:
To complete an action, a parameter array can be included in the request payload arguments.
Request payload:
Response payload:
Properties
Cancel an action
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.
Request payloads:
Response payload:
Properties
Cancel a request's actions by name
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.
Request payload:
Response payload:
Properties
Assign an action
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
.
Request payloads:
Response payload:
Properties
Cancel an action assignment
To cancel an action assignment, you should provide the request number and the action number, or the action ID.
Request payloads:
Response payload:
Properties
End-user operations
Create a favorite
The incoming webhook application lets users add processes and views to their favorites lists using the process or view IDs.
Request payload:
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:
Request payload:
Response payload:
Properties
Update a favorite
The incoming webhook application lets users update an existing favorite process or view by using its favorite ID.
Request payload:
Response payload:
Properties
Delete a favorite
The incoming webhook application lets users delete an existing favorite process or view from their favorites list by using its favorites ID.
Request payload:
Response payload:
Properties
Add a comment
The incoming webhook application lets users add comments to requests.
Request payload:
Response payload:
Properties
Remove a comment
The incoming webhook application lets users remove comments from requests.
Request payload:
Response payload:
Properties
Parameter definitions
These parameters define single data values used in the Create a new request, Update a request dataset, Complete an action, and Complete a form action operations.
Operation values
File values
File upload
As of version 7.2.0, the incoming webhook application supports the fileValue.updatedAt
, fileValue.content
, and fileValue.url
fields when sending FILE parameters (as shown in the previous example).
The fileValue.updatedAt
field should use the ISO 8601 date format.
File content
The fileValue.content
field should contain the file content encoded in base64. In this case, the fileValue.url
field is not required. You must set the maximum input file content size (see the Configuration section above for instructions on how to set these).
File URL
The fileValue.url
field contains the file URL. When working with FILE parameters, you must set the input file allowed folders and the maximum input file size (see the Configuration section above for instructions on how to set these).
The following path patterns are supported:
Local file should use the File URI scheme:
Public file URL:
Local host file URL:
Delegation mode
Some of these operations can be done in delegation mode, by adding the onBehalfOfUserName
(delegator username) or the onBehalfOf
(delegator ID) arguments to the request JSON payload, such as in the following example:
Request payloads:
In this case, the response payload will also contain the onBehalfOf
and onBehalfOfUserName
arguments.
In the case of CancelActionAssignment
and UpdateRequestDataset
operations, the delegation mode is not supported.
clientMutationId
clientMutationId
clientMutationId
is an optional argument that can be used by the requester to identify the execution of an operation. Its value is defined in the input payload (e.g. a UUID). If defined, the same value is returned by the operation.
Request payload:
Response payload:
Known limitations
For file type data parameters, the URL must start with file://
, and the path has to be available to the WorkflowGen server.
Last updated