IPS Workflowgroup Management API
Payload structure for workflow group metadata. This information is provided and seeded by connector engineering lead.
Integration code allocated to a specific Vertex built connector in Integration Platform (IPS)
Connector name used in IPS
Information about workflowgroup parameters that are common across two or more workflowgroups
This is for information purposes. It is expected that values defined in this list, matches the property codes seeded for the sharedConfigGroupMetadata.
Information about one of more workflow groups.
Information about workflow group parameters that are common across two or more workflowgroups
Connector team defined code of a config group. See IPS integration management and tenant integration maangement APIs for more details.
Connector team defined name of a config group. See IPS integration management and tenant integration maangement APIs for more details.
Config group description.
Information about a workflow group(s) input parameter
Connector team defined code for a given config group property. See IPS integration management and tenant integration maangement APIs for more details.
Connector team defined name for a given config group property. See IPS integration management and tenant integration maangement APIs for more details.
Connector team defined description for a given config group property. See IPS integration management and tenant integration maangement APIs for more details.
Connector team defined type for a given config group property. See IPS integration management and tenant integration maangement APIs for more details. The type definitions for workflow parameters may have different characteristics from the generic CPS defined property types.
Sensitive property indicator.
Connector team defined default value for a given config group property. See IPS integration management and tenant integration maangement APIs for more details.
Comma separated constraints information (human readable)
JSON structured constraints (machine readable)
Engineering team defined code for a given connector workflow group.
Engineering team defined name for a given connector workflow group
Engineering team defined description for a given connector workflow group
Engineering team defined applicable actions for a given workflow group. This can be empty in some cases. These actions will be used to drive connector MFE submit button labels or modals.
Engineering team defined schema for input parameters that need to be assigned/set by our customers.
Full list of expected properties for a given workflowGroupConfigMetadata
Engineering team defined search attributes for workflow executions with this group
Engineering team assigned workflows for this group
Engineering team defined code for a given connector workflow (This is the value used when communicating with underlying workflow engine)
Engineering team defined name for a given connector workflow
Engineering team defined description for a given connector workflow
Engineering team provisioned namespace where this workflow is expected to executed
Engineering team defined name for task queue where workflow execution requests will be published (on demand or scheduled)
Workflows with this flag turned cannot be triggered/scheduled. These are typically child workflows that are spawned from triggerable workflows and cannot be executed independently.
Enabled for workflows that are expected to be executed periodically
Properties that requires user input. These must be a subset of properties defined in WorkflowGroupsMetadata.sharedConfigGroupPropertiesMetadata[].code + WorkflowGroupMetadata.configGroupPropertiesMetadata[].code. Engineering teams can define and seed constraints for this property.
This parameter is only applicable for workflows with schedulable flag turned on. These must be a subset of properties defined in WorkflowGroupsMetadata.sharedConfigGroupPropertiesMetadata[].code + WorkflowGroupMetadata.configGroupPropertiesMetadata[].code. User provided value is expected to be an integer value between 0 and 59.
This parameter is only applicable for workflows with schedulable flag turned on. These must be a subset of properties defined in WorkflowGroupsMetadata.sharedConfigGroupPropertiesMetadata[].code + WorkflowGroupMetadata.configGroupPropertiesMetadata[].code. User provided value is expected to be an integer value between 0 and 23.
This parameter is only applicable for workflows with schedulable flag turned on. These must be a subset of properties defined in WorkflowGroupsMetadata.sharedConfigGroupPropertiesMetadata[].code + WorkflowGroupMetadata.configGroupPropertiesMetadata[].code. User provided value is expected to be an integer value between 1 and 7.
Arbitrary properties used for workflow input object attributes using default values specified by connector engineering
Note: Scheduling or unscheduling a scheduled workflow that is shared across connector applications will currently impact other applications. This is specifically applicable to shared einvoice polling jobs. This will eventually be addressed when we get push notifications.
This action save user defined input parameters and trigger all workflows in a group. It will also schedule scheduled workflows using default or user provided intervals.
This action save user defined input parameters and schedule scheduled workflows using default or user provided intervals.
This action save user defined input parameters and unschedule scheduled workflows using default or user provided intervals. Unscheduled workflows in a given group is expected to be skipped.
Workflow execution id
Workflow code (engineering defined)
Workflow status
Time when a given unit of work was published to task queue
Time when a given unit of work was consumed from task queue and ended (graceful or forced)
Workflow execution input. Sensitive data must be masked.
Workflow execution outcome. Sensitive data must be masked.
Engineering team defined code for a given connector workflow group. (See WorkflowGroupMetadata). Application must reject codes that are not defined in the WorkflowGroupsMetadata.group[*].code
One of engineering team defined action for a given connector workflow group. (See WorkflowGroupMetadata). Unsupported (actions that are not defined in WorkflowGroupMetadata.actions) actions will be rejected.
Map of key value pair where all keys must be a subset of WorkflowGroupMetadata.configGroupPropertiesMetadata[].code and WorkflowGroupsMetadata.sharedConfigGroupProperties[].code
Filter by one or more workflow execution statuses
This values must be a subset of codes defined in WorkflowGroupMetadata.workflows[*].code
Map of key value pair where all keys must be a subset of WorkflowGroupMetadata.additionalSearchPropertiesMetadata[].code
Page number. (Starts from 0)
Requested number of elements in a given page or results
Multi value sort parameter used for paging across a large data set. The expected format is as follows when specified:
sortField,sortOrder
sortField can be any arbitrary field specific to the content that is being paged sortOrder is ASC or DESC. The sort order defaults to ASC when left unspecified.
A page can be sorted using multiple columns by providing multiple sort query parameters
pageSort=field1,ASC&pageSort=field2,DESC
Currently the only value supported is publishedAt timestamp value that is internally created during processing. Other values will either be ignored or will potentially result in error.
{integrationCode}
/workflowgroupsmetadata{entitlementId}
/workflowgroups{entitlementId}
/workflowgroups/{workflowGroupCode}
{integrationCode}
/workflowgroupsmetadataAuthentication
This endpoint responds with workflow groups associated with a specific connector (entitlement.integration). The information in the response payloads provides information about various applicable workflows, their groupings, input parameters, and constraints.
Path variables
Responses
Sample application defined metadata for Oracle E-Invoicing connector
GET https://integration-platform-services-dev.platdev.vtxdev.net/tiwfg/v1/tenantintegrations/{entitlementId}/workflowgroupsmetadata HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"integrationCode": "vtxubleinv",
"integrationName": "Vertex E-Invoicing for Oracle ERP",
"sharedConfigGroupMetadata": {
"code": "workflowGroupsSettings",
"name": "Vertex E-Invoicing for Oracle ERP: General workflow groups settings",
"description": "Vertex E-Invoicing for Oracle ERP: General workflow groups settings"
},
"sharedConfigGroupPropertiesMetadata": [
{
"code": "eInvoicingApiClientId",
"name": "E-Invoicing API Client Id",
"description": "Tenant specific e-invoicing m2m client id",
"type": "STRING",
"sensitive": true,
"defaultValue": "",
"constraints": "required",
"constraintsMetadata": "[{\"required\": true}]"
},
{
"code": "eInvoicingApiClientSecret",
"name": "E-Invoicing API Client Secret",
"description": "Tenant specific e-invoicing m2m client secret",
"type": "STRING",
"sensitive": true,
"defaultValue": "",
"constraints": "required",
"constraintsMetadata": "[{\"required\": true}]"
}
],
"groups": [
{
"code": "oracleErpEinvoicingOutbound",
"name": "E-Invoicing Outbound Status Workflows",
"description": "E-Invoicing Outbound Status Workflows",
"workflowGroupActions": [
"TRIGGER",
"SCHEDULE",
"UNSCHEDULE"
],
"configGroupMetadata": {
"code": "oracleErpEinvoicingOutbound",
"name": "E-Invoicing Outbound Status Workflows",
"description": "IPS config group for describing customer defined values outbound e-invoicing status workflows"
},
"configGroupPropertiesMetadata": [
{
"code": "outboundEInvoiceWorkflowScheduleAtMinute",
"name": "Outbound E Invoice Schedule At Minute",
"type": "NUMBER",
"defaultValue": "15",
"constraintsMetadata": "[\"type\": \"number\",\"required\":true, \"min\": 15, \"max\": 59,]"
},
{
"code": "outboundEInvoiceWorkflowScheduleAtHour",
"name": "Outbound E Invoice Schedule At Hour",
"type": "NUMBER",
"constraintsMetadata": "[\"type\": \"number\",\"required\":true, \"min\": 0, \"max\": 23,]"
},
{
"code": "outboundEInvoiceWorkflowScheduleOnDayOfWeek",
"name": "Outbound E Invoice Schedule On Day of Week",
"type": "NUMBER",
"constraintsMetadata": "[\"type\": \"number\",\"required\":true, \"min\": 1 \"max\": 7,]"
}
],
"additionalSearchPropertiesMetadata": [
{
"code": "documentId",
"name": "Document ID",
"description": "Vertex e-invoicing generated document id",
"type": "STRING"
}
],
"workflows": [
{
"code": "EventTypeWebhookSubscription",
"name": "Event type webhook subscription",
"description": "Subscribe for EINVOICE_RECEIVED event",
"namespace": "einvoicing-connector",
"taskQueueName": "eventTypeWebhookSubscription",
"applicationDefinedWorkflowInputPropertiesMetadata": [
{
"code": "einvoiceEventType",
"name": "E-Invoice event type",
"description": "E-Invoice event type for outbound status notifications",
"type": "STRING",
"defaultValue": "EINVOICE_RECEIVED"
},
{
"code": "callbackUrl",
"name": "Callback URL",
"description": "Oracle ERP E-Invoicing connector's endpoint for receiving events",
"type": "STRING",
"defaultValue": "https://ubleinv.cst-stage.vtxdev.net/connector-ubleinv/api/erp/invoicestatus?env=stage"
}
]
},
{
"code": "EinvoicingClientRegistration",
"name": "E-Invoicing Client Registration",
"description": "Register e-invoicing client credentials",
"namespace": "einvoicing-connector",
"taskQueueName": "einvoicingClientRegistration",
"customerDefinedInputPropertyCodes": [
"einvoiceApiClientId",
"einvoiceApiClientSecret"
]
},
{
"code": "OutboundEInvoiceWorkflow",
"name": "Outbound E-Invoice Workflow",
"description": "Outbound E-Invoice Workflow",
"namespace": "einvoicing-connector",
"taskQueueName": "outboundEInvoicePollingTaskQueue",
"schedulable": true,
"customerDefinedScheduleAtMinutePropertyCode": "outboundEInvoiceWorkflowScheduleAtMinute",
"customerDefinedScheduleAtHourPropertyCode": "outboundEInvoiceWorkflowScheduleAtHour",
"customerDefinedScheduleOnDayOfWeekPropertyCode": "outboundEInvoiceWorkflowScheduleOnDayOfWeek"
},
{
"code": "RetrieveEInvoiceArtifactsWorkflow",
"name": "Process einvoice notification",
"namespace": "einvoicing-connector",
"taskQueueName": "retrieveEInvoiceArtifactsTaskQueue",
"schedulable": false,
"readOnly": true
}
]
},
{
"code": "oracleErpEinvoicingInbound",
"name": "E-Invoicing Inbound Workflows",
"description": "E-Invoicing Inbound Workflows",
"workflowGroupActions": [
"TRIGGER",
"SCHEDULE",
"UNSCHEDULE"
],
"configGroupMetadata": {
"code": "oracleErpEinvoicingInbound",
"name": "E-Invoicing Inbound Workflows",
"description": "IPS config group for describing customer defined values for inbound e-invoicing workflows"
},
"configGroupPropertiesMetadata": [
{
"code": "inboundEInvoiceWorkflowScheduleAtMinute",
"name": "Inbound E Invoice Schedule At Minute",
"type": "NUMBER",
"defaultValue": "15",
"constraintsMetadata": "[\"type\": \"number\",\"required\":true, \"min\": 15, \"max\": 59,]"
},
{
"code": "inboundEInvoiceWorkflowScheduleAtHour",
"name": "Inbound E Invoice Schedule At Hour",
"type": "NUMBER",
"constraintsMetadata": "[\"type\": \"number\",\"required\":true, \"min\": 0, \"max\": 23,]"
},
{
"code": "inboundEInvoiceWorkflowScheduleOnDayOfWeek",
"name": "Inbound E Invoice Schedule On Day of Week",
"type": "NUMBER",
"constraintsMetadata": "[\"type\": \"number\",\"required\":true, \"min\": 1 \"max\": 7,]"
}
],
"additionalSearchPropertiesMetadata": [
{
"code": "documentId",
"name": "Document ID",
"description": "Vertex e-invoicing generated document id",
"type": "STRING"
}
],
"workflows": [
{
"code": "EventTypeWebhookSubscription",
"name": "Event type webhook subscription",
"description": "Subscribe for EINVOICE_RECEIVED event",
"namespace": "einvoicing-connector",
"taskQueueName": "eventTypeWebhookSubscription",
"applicationDefinedWorkflowInputPropertiesMetadata": [
{
"code": "einvoiceEventType",
"name": "E-Invoice event type",
"description": "E-Invoice event type for inbound status notifications",
"type": "STRING",
"defaultValue": "EINVOICE_RECEIVED"
},
{
"code": "callbackUrl",
"name": "Callback URL",
"description": "Oracle ERP E-Invoicing connector's endpoint for receiving events",
"type": "STRING",
"defaultValue": "https://ubleinv.cst-stage.vtxdev.net/connector-ubleinv/api/erp/invoicestatus?env=stage"
}
]
},
{
"code": "EinvoicingClientRegistration",
"name": "E-Invoicing Client Registration",
"description": "Register e-invoicing client credentials",
"namespace": "einvoicing-connector",
"taskQueueName": "einvoicingClientRegistration",
"customerDefinedInputPropertyCodes": [
"einvoiceApiClientId",
"einvoiceApiClientSecret"
]
},
{
"code": "InboundEInvoiceWorkflow",
"name": "Inbound E-Invoice Workflow",
"description": "Inbound E-Invoice Workflow",
"namespace": "einvoicing-connector",
"taskQueueName": "inboundEInvoicePollingTaskQueue",
"schedulable": true,
"customerDefinedScheduleAtMinutePropertyCode": "inboundEInvoiceWorkflowScheduleAtMinute",
"customerDefinedScheduleAtHourPropertyCode": "inboundEInvoiceWorkflowScheduleAtHour",
"customerDefinedScheduleOnDayOfWeekPropertyCode": "inboundEInvoiceWorkflowScheduleOnDayOfWeek"
},
{
"code": "RetrieveEInvoiceArtifactsWorkflow",
"name": "Process einvoice notification",
"namespace": "einvoicing-connector",
"taskQueueName": "retrieveEInvoiceArtifactsTaskQueue",
"schedulable": false,
"readOnly": true
}
]
}
]
}
{entitlementId}
/workflowgroupsAuthentication
This endpoint is responsible for executing workflows associated with a given workflow group. See example for how it would look like for Oracle e invoicing connector.
- All workflows in the group are executed senquentially and synchronosly (if action is TRIGGER and it is not marked as readonly).
- Failure in any workflow execution is treated as a failure.
- If a workflow is marked as readonly or workflow action is UNSCHEDULE, it will be skipped.
- If a workflow is marked as schedulable, a schedule will be created based on the schedule parameters.
Path variables
Request body
Responses
Sample execution of outbound Oracle e-invoice workflowflow groups
POST https://integration-platform-services-dev.platdev.vtxdev.net/tiwfg/v1/tenantintegrations/{entitlementId}/workflowgroups HTTP/1.1
Content-Type: application/json;charset=UTF-8
{
"code": "oracleErpEinvoicingOutbound",
"action": "TRIGGER",
"configProperties": {
"eInvoicingApiClientId": "xxx",
"eInvoicingApiClientSecret": "xxx",
"outboundEInvoiceWorkflowScheduleAtMinute": "30",
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"workflows": [
{
"code": "EventTypeWebhookSubscription",
"output": "success"
},
{
"code": "EinvoicingClientRegistration",
"output": "success"
},
{
"code": "OutboundEInvoiceWorkflow"
"output": "records fetched 11, initiated downstream process"
}
]
}
Sample execution of inbound Oracle e-invoice workflowflow groups
POST https://integration-platform-services-dev.platdev.vtxdev.net/tiwfg/v1/tenantintegrations/{entitlementId}/workflowgroups HTTP/1.1
Content-Type: application/json;charset=UTF-8
{
"code": "oracleErpEinvoicingInbound",
"action": "TRIGGER",
"configProperties": {
"eInvoicingApiClientId": "xxx",
"eInvoicingApiClientSecret": "xxx",
"inboundEInvoiceWorkflowScheduleAtMinute": "30",
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"workflows": [
{
"code": "EventTypeWebhookSubscription",
"output": "success"
},
{
"code": "EinvoicingClientRegistration",
"output": "success"
},
{
"code": "OutboundEInvoiceWorkflow"
"output": "records fetched 11, initiated downstream process"
}
]
}
{entitlementId}
/workflowgroups/{workflowGroupCode}
Authentication
For pagination, sorting is based on execution start time, and sort order is always descending.
Path variables
Request parameters
Request body
Responses
Example response for search Oracle einvoicing outbound workflow group
GET https://integration-platform-services-dev.platdev.vtxdev.net/tiwfg/v1/tenantintegrations/3b5ca703-a21a-452f-af8e-aec95539f5aa/workflowgroups/oracleErpEinvoicingOutbound HTTP/1.1
Content-Type: application/json;charset=UTF-8
{
"statuses": [
"COMPLETED", "FAILED"
],
"workflowCodes": [
"RetrieveEInvoiceArtifactsWorkflow"
],
"startedAt": "2025-05-23T00:00:00.000Z",
"endedAt": "2025-05-23T01:00:00.000Z",
"additionalSearchProperties": {
"documentId": "28ae361a-2e26-4182-b79e-a4e375435b23"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "f6117d7b-a3b7-4d34-9bca-b9d6f1a41a80",
"code": "RetrieveEInvoiceArtifactsWorkflow",
"status": "COMPLETED",
"startedAt": "2025-05-23T00:01:00.000Z",
"endedAt": "2025-05-23T00:02:00.000Z",
"input": "28ae361a-2e26-4182-b79e-a4e375435b23",
"output": "Successfully transmitted to callback endpoint"
}
]
}
Example response for search Oracle einvoicing outbound workflow group
GET https://integration-platform-services-dev.platdev.vtxdev.net/tiwfg/v1/tenantintegrations/3b5ca703-a21a-452f-af8e-aec95539f5aa/workflowgroups/oracleErpEinvoicingInbound HTTP/1.1
Content-Type: application/json;charset=UTF-8
{
"statuses": [
"COMPLETED", "FAILED"
],
"workflowCodes": [
"RetrieveEInvoiceArtifactsWorkflow"
],
"startedAt": "2025-05-23T00:00:00.000Z",
"endedAt": "2025-05-23T01:00:00.000Z",
"additionalSearchProperties": {
"documentId": "28ae361a-2e26-4182-b79e-a4e375435b23"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "f6117d7b-a3b7-4d34-9bca-b9d6f1a41a80",
"code": "RetrieveEInvoiceArtifactsWorkflow",
"status": "COMPLETED",
"startedAt": "2025-05-23T00:01:00.000Z",
"endedAt": "2025-05-23T00:02:00.000Z",
"input": "28ae361a-2e26-4182-b79e-a4e375435b23",
"output": "Successfully transmitted to callback endpoint"
}
]
}