> For the complete documentation index, see [llms.txt](https://docs.fulfillmenttools.com/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fulfillmenttools.com/documentation/apis/api-reference/workflows.md).

# Workflows

Endpoints to create, update, and read workflow definitions.

## List workflows (search)

> This part of the API is in Alpha status. For details, see the \<a href="<https://docs.fulfillmenttools.com/documentation/apis/api-versioning-and-lifecycle#lifecycle-overview>" target="\_blank">API release lifecycle documentation\</a>.\<br />\<br />Search for Workflow

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"tags":[{"description":"Endpoints to create, update, and read workflow definitions.","name":"Workflows"}],"servers":[{"url":"https://{tenant}.api.fulfillmenttools.com","variables":{"tenant":{"default":"your-tenant-name"}}}],"security":[{"BearerToken":[]}],"components":{"securitySchemes":{"BearerToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"WorkflowSearchPayload":{"properties":{"after":{"deprecated":false,"description":"The cursor to start after for forward pagination. The value is provided in the `pageInfo.endCursor` field of the response. Cannot be used with `before` or `last`.","type":"string"},"before":{"description":"The cursor to start before for backward pagination. The value is provided in the `pageInfo.startCursor` field of the response. Cannot be used with `after` or `size` (first).","type":"string"},"last":{"description":"Number of items to return for backward pagination. Cannot be used with 'size' (first). Default: 20.","maximum":250,"minimum":1,"type":"number"},"options":{"$ref":"#/components/schemas/SearchOptions"},"query":{"$ref":"#/components/schemas/WorkflowSearchQuery"},"size":{"description":"Number of items to return for forward pagination. Cannot be used with 'last'. Default: 20.","maximum":250,"minimum":1,"type":"number"},"sort":{"description":"Use for sorting the result.","items":{"$ref":"#/components/schemas/WorkflowSort"},"maxItems":1,"minItems":1,"type":"array"},"startAfterId":{"deprecated":true,"description":"The ID to start after. Deprecated, use `after` with the value provided in `pageInfo.endCursor` instead.","type":"string"}},"required":["query"],"title":"WorkflowSearchPayload","type":"object","description":"WorkflowSearchPayload"},"SearchOptions":{"properties":{"withTotal":{"description":"Set to true to include the total count of items in the search result.","type":"boolean"}},"title":"SearchOptions","type":"object","description":"SearchOptions"},"WorkflowSearchQuery":{"properties":{"and":{"items":{"$ref":"#/components/schemas/WorkflowSearchQuery"},"maxItems":500,"type":"array"},"id":{"allOf":[{"$ref":"#/components/schemas/StringFilter"}],"description":"Search by id"},"isActive":{"allOf":[{"$ref":"#/components/schemas/BooleanFilter"}],"description":"Search by isActive"},"name":{"allOf":[{"$ref":"#/components/schemas/LocalizedStringSearchFilter"}],"description":"Search by name"},"or":{"items":{"$ref":"#/components/schemas/WorkflowSearchQuery"},"maxItems":500,"type":"array"},"tenantWorkflowId":{"allOf":[{"$ref":"#/components/schemas/StringFilter"}],"description":"Search by tenantWorkflowId"}},"title":"WorkflowSearchQuery","type":"object","description":"WorkflowSearchQuery"},"StringFilter":{"properties":{"eq":{"maxLength":256,"type":"string"},"in":{"items":{"maxLength":256,"type":"string"},"maxItems":25,"type":"array"},"notEq":{"maxLength":256,"type":"string"},"notIn":{"items":{"maxLength":256,"type":"string"},"maxItems":25,"type":"array"}},"title":"StringFilter","type":"object","description":"StringFilter"},"BooleanFilter":{"properties":{"eq":{"type":"boolean"},"notEq":{"type":"boolean"}},"title":"BooleanFilter","type":"object","description":"BooleanFilter"},"LocalizedStringSearchFilter":{"properties":{"eq":{"maxLength":256,"type":"string"},"in":{"items":{"maxLength":256,"type":"string"},"maxItems":25,"type":"array"},"like":{"description":"Search by regex pattern","maxLength":256,"type":"string"},"notEq":{"maxLength":256,"type":"string"},"notIn":{"items":{"maxLength":256,"type":"string"},"maxItems":25,"type":"array"}},"title":"LocalizedStringSearchFilter","type":"object","description":"LocalizedStringSearchFilter"},"WorkflowSort":{"properties":{"id":{"enum":["ASC","DESC"],"type":"string"}},"title":"WorkflowSort","type":"object","description":"WorkflowSort"},"WorkflowPaginatedResult":{"properties":{"pageInfo":{"allOf":[{"$ref":"#/components/schemas/PageInfo"}],"description":"Pagination information for the search result."},"total":{"description":"The total number of items matching the search criteria. Only filled, if withTotal is set to true in the search options.","minimum":0,"type":"number"},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowDefinition"},"type":"array"}},"required":["pageInfo","workflows"],"title":"WorkflowPaginatedResult","type":"object","description":"WorkflowPaginatedResult"},"PageInfo":{"properties":{"endCursor":{"description":"The cursor to use to fetch the next page of items. Use with parameter `after`.","type":"string"},"hasNextPage":{"description":"If true, there are more items after the current page.","type":"boolean"},"hasPreviousPage":{"description":"If true, there are more items before the current page.","type":"boolean"},"startCursor":{"description":"The cursor to use to fetch the previous page of items.","type":"string"}},"required":["hasNextPage","hasPreviousPage","startCursor","endCursor"],"title":"PageInfo","type":"object","description":"PageInfo"},"WorkflowDefinition":{"properties":{"nameLocalized":{"allOf":[{"$ref":"#/components/schemas/WorkflowNameLocaleStringRequired"}],"description":"Localized human-readable name of the workflow. At least one locale value is required."},"descriptionLocalized":{"allOf":[{"$ref":"#/components/schemas/WorkflowDescriptionLocaleString"}],"description":"Localized description of what the workflow does"},"connections":{"description":"Array of connections between workflow nodes","items":{"$ref":"#/components/schemas/WorkflowConnection"},"maxItems":10,"type":"array"},"description":{"description":"Description resolved to the requesting user's locale (read-only)","type":"string"},"id":{"description":"Unique identifier for the workflow definition","type":"string"},"isActive":{"description":"Whether the workflow definition is active","type":"boolean"},"name":{"description":"Name resolved to the requesting user's locale (read-only)","type":"string"},"nodes":{"description":"Array of workflow nodes","items":{"oneOf":[{"$ref":"#/components/schemas/FFTActivityNode"},{"$ref":"#/components/schemas/GuardWorkflowNode"},{"$ref":"#/components/schemas/ConditionWorkflowNode"}]},"maxItems":100,"type":"array"},"rootId":{"description":"Key of the root node where workflow execution begins","type":"string"},"tenantWorkflowId":{"description":"Unique tenant id for the workflow definition. Must not contain \".\" or \"$\" characters.","type":"string"},"type":{"description":"Type of workflow. Currently only ORDER workflows are supported","enum":["ORDER"],"type":"string"},"version":{"description":"Current version of the workflow definition for optimistic locking","type":"number"}},"required":["tenantWorkflowId","type","nameLocalized","rootId","nodes","connections","id","version","isActive"],"title":"WorkflowDefinition","type":"object","description":"WorkflowDefinition"},"WorkflowNameLocaleStringRequired":{"additionalProperties":{"maxLength":100,"minLength":2,"type":"string"},"description":"Provides localized values. The key is the locale, the value is the translation. https://docs.fulfillmenttools.com/documentation/getting-started/authentication-and-authorization/localization","minProperties":1,"title":"WorkflowNameLocaleStringRequired","type":"object"},"WorkflowDescriptionLocaleString":{"additionalProperties":{"maxLength":500,"minLength":2,"type":"string"},"description":"Provides localized values. The key is the locale, the value is the translation. https://docs.fulfillmenttools.com/documentation/getting-started/authentication-and-authorization/localization","title":"WorkflowDescriptionLocaleString","type":"object"},"WorkflowConnection":{"properties":{"from":{"description":"Source node key. For condition nodes, may include .TRUE or .FALSE suffix (e.g., \"fraud-check.TRUE\")","type":"string"},"to":{"description":"Target node key. For condition nodes, may include .TRUE or .FALSE suffix (e.g., \"fraud-check.FALSE\")","type":"string"}},"required":["from","to"],"title":"WorkflowConnection","type":"object","description":"WorkflowConnection"},"FFTActivityNode":{"properties":{"nameLocalized":{"allOf":[{"$ref":"#/components/schemas/WorkflowNameLocaleString"}],"description":"Localized name of the node"},"descriptionLocalized":{"allOf":[{"$ref":"#/components/schemas/WorkflowDescriptionLocaleString"}],"description":"Localized description of the node"},"description":{"description":"Description resolved to the requesting user's locale (read-only)","type":"string"},"key":{"description":"Unique identifier for this node within the workflow","type":"string"},"name":{"description":"Name resolved to the requesting user's locale (read-only)","type":"string"},"type":{"description":"Type of the workflow node - module nodes that map to business entities","enum":["ORDER_MODULE","PICKING_MODULE","PACKING_MODULE","HANDOVER_MODULE","RESERVATION_MODULE","ROUTING_MODULE","SHIPPING_MODULE","SERVICES_MODULE"],"type":"string"}},"required":["key","type"],"title":"FFTActivityNode","type":"object","description":"FFTActivityNode"},"WorkflowNameLocaleString":{"additionalProperties":{"maxLength":100,"minLength":2,"type":"string"},"description":"Provides localized values. The key is the locale, the value is the translation. https://docs.fulfillmenttools.com/documentation/getting-started/authentication-and-authorization/localization","title":"WorkflowNameLocaleString","type":"object"},"GuardWorkflowNode":{"properties":{"nameLocalized":{"allOf":[{"$ref":"#/components/schemas/WorkflowNameLocaleString"}],"description":"Localized name of the node"},"descriptionLocalized":{"allOf":[{"$ref":"#/components/schemas/WorkflowDescriptionLocaleString"}],"description":"Localized description of the node"},"condition":{"description":"Guard condition: an expression or a built-in (preconfigured) guard.","discriminator":{"mapping":{"EXPRESSION":"#/components/schemas/ExpressionGuardCondition","PRECONFIGURED":"#/components/schemas/PreconfiguredGuardCondition"},"propertyName":"kind"},"oneOf":[{"$ref":"#/components/schemas/ExpressionGuardCondition"},{"$ref":"#/components/schemas/PreconfiguredGuardCondition"}]},"description":{"description":"Description resolved to the requesting user's locale (read-only)","type":"string"},"key":{"description":"Unique identifier for this node within the workflow","type":"string"},"name":{"description":"Name resolved to the requesting user's locale (read-only)","type":"string"},"type":{"description":"Type of the workflow node","enum":["GUARD"],"type":"string"}},"required":["key","type","condition"],"title":"GuardWorkflowNode","type":"object","description":"GuardWorkflowNode"},"ExpressionGuardCondition":{"properties":{"entity":{"description":"Entity the expression applies to","enum":["ORDER","INCOMING_EVENT"],"type":"string"},"expression":{"description":"JSONPath expression evaluated to decide the guard.","type":"string"},"kind":{"description":"Discriminator: expression-based guard.","enum":["EXPRESSION"],"type":"string"}},"required":["kind","expression","entity"],"title":"ExpressionGuardCondition","type":"object","description":"ExpressionGuardCondition"},"PreconfiguredGuardCondition":{"properties":{"kind":{"description":"Discriminator: built-in guard.","enum":["PRECONFIGURED"],"type":"string"},"preconfigured":{"description":"Which built-in guard to run","enum":["ORDER_GATE"],"type":"string"}},"required":["kind","preconfigured"],"title":"PreconfiguredGuardCondition","type":"object","description":"PreconfiguredGuardCondition"},"ConditionWorkflowNode":{"properties":{"nameLocalized":{"allOf":[{"$ref":"#/components/schemas/WorkflowNameLocaleString"}],"description":"Localized name of the node"},"descriptionLocalized":{"allOf":[{"$ref":"#/components/schemas/WorkflowDescriptionLocaleString"}],"description":"Localized description of the node"},"condition":{"allOf":[{"$ref":"#/components/schemas/WorkflowCondition"}],"description":"Condition expression that determines the path. Connections from this node must use .TRUE or .FALSE suffixes"},"description":{"description":"Description resolved to the requesting user's locale (read-only)","type":"string"},"key":{"description":"Unique identifier for this node within the workflow","type":"string"},"name":{"description":"Name resolved to the requesting user's locale (read-only)","type":"string"},"type":{"description":"Type of the workflow node","enum":["CONDITION"],"type":"string"}},"required":["key","type","condition"],"title":"ConditionWorkflowNode","type":"object","description":"ConditionWorkflowNode"},"WorkflowCondition":{"properties":{"entity":{"description":"Entity type that the condition applies to","enum":["ORDER","INCOMING_EVENT","FACILITY"],"type":"string"},"expression":{"description":"Expression that defines the condition","type":"string"}},"required":["expression","entity"],"title":"WorkflowCondition","type":"object","description":"WorkflowCondition"},"ApiError":{"items":{"$ref":"#/components/schemas/ErrorInner"},"type":"array","xml":{"name":"ApiError"},"title":"ApiError","description":"ApiError"},"ErrorInner":{"properties":{"description":{"type":"string"},"requestVersion":{"description":"The version provided within an invalid request.","format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["summary"],"type":"object","title":"ErrorInner","description":"ErrorInner"}}},"paths":{"/api/workflows/search":{"post":{"deprecated":false,"description":"This part of the API is in Alpha status. For details, see the <a href=\"https://docs.fulfillmenttools.com/documentation/apis/api-versioning-and-lifecycle#lifecycle-overview\" target=\"_blank\">API release lifecycle documentation</a>.<br /><br />Search for Workflow","operationId":"searchWorkflow","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowSearchPayload"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowPaginatedResult"}}},"description":"Your search result"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user is not allowed to operate against this API instance"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user, although recognized, is not authorized to use this endpoint"}},"summary":"List workflows (search)","tags":["Workflows"]}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.fulfillmenttools.com/documentation/apis/api-reference/workflows.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
