🌐 Web | 👤 Yokoy admin with Workflow Designer permissions
🏢 Node use - Professional and Enterprise plan
Some condition, activity, and approval nodes are restricted to Yokoy Professional or Enterprise plans. Your company must have one of these plans to incorporate them in your workflow.
The Workflow Designer uses nodes to determine the business logic applied in processing expenses in Yokoy.
When you create a workflow, you use four types of node:
Status nodes: Indicate the document’s status. In other words, these nodes represent Yokoy internal statuses (e.g. Draft, In approval, etc.).
Condition nodes: Represent conditional clauses. They are if-else conditions based on specific logic that is either true or false.
Activity nodes: Represent actions or tasks behind the scenes in Yokoy.
Approval nodes: Complement activity nodes to reproduce the business logic of an approval flow.
Status nodes are common to both invoice and expense workflows. Condition, activity, and approval nodes are specific to each workflow type.
Each status node has a specific combination of nodes that can be placed before and after. The action that can be triggered depends on this combination. The Workflow Designer allows these combinations for expense workflows:
Status node | Incoming | Outgoing |
Draft |
|
|
In review |
| |
Needs revision |
|
|
Ready for expense export |
|
|
Ready for transaction export |
|
|
Expense exported |
|
|
Transaction exported |
|
|
Rejected |
|
|
Archived |
|
|
Expense condition nodes
Condition nodes include conditional clauses for performing the next step in the workflow. The Workflow Designer offers these notes for managing expenses:
True/false condition (Professional or Enterprise only)
Custom true/false condition (Professional or Enterprise only)
Amount validation (expense) (Professional or Enterprise only)
Amount validation (category) (Professional or Enterprise only)
Amount validation (trip) (Enterprise only)
Tax rates incomplete (Enterprise only)
Submission to own cost centers (Professional or Enterprise only)
Submitter with property (Professional or Enterprise only)
Cost center with property (Professional or Enterprise only)
Expense age ≤ max. threshold (Professional or Enterprise only)
True/false condition (Professional or Enterprise only)
Configure a true/false condition based on specific business rules that you determine in JSON format. For example, you can use this condition to check if an expense is a receipt or a receiptless expense, if it is a credit note, etc.
In this case, this condition returns:
True: The JSON-specified condition is met (i.e. the property is present on the expense).
False: The JSON-specified condition is not met (i.e. the property is not present on the expense).
✏️ Note
The True/False condition checks for attributes saved on the expense (such as custom fields). If you need to check attributes on the object itself, such as whether a custom field has been selected on a tag dimension, use the Custom true/false condition.
JSON rules
You can build complex business rules and serialize them as JSON. The JSON rules are specified in the Rules field of the node options.
These operations are supported:
Accessing data |
|
Logic and Boolean operations |
|
Numeric operations |
|
Array operations |
|
String operations |
|
For example, you can:
Check if a custom field is present on the expense.
Check whether an expense is a receipt type.
Check whether an expense is a receiptless type.
Check if the expense is assigned to a trip.
Check if the expense has warnings.
Check if the expense originates with TravelPerk.
Check if the expense has one of two categories selected.
Check for custom field on expense
You can set up a rule to check if there is the customInformation.field value and it is equal to true. If so, it returns true.
Identify the custom information field in the company, if not already set up by Yokoy.
Then add a true/false node and copy and paste this snippet into the Rules field:
{
"==": [
{
"var": [
"customInformation.<CustomFieldLabelName>"
]
},
true
]
}Set up the workflow in the company.
✏️ Note - Custom information fields
Custom information fields can only be set up by Yokoy. You may need to open a support ticket if the custom information field you require doesn‘t already exist in your Yokoy implementation.
Check if expense is receipt
You can set up a rule to check if the expense is a receipt one. If so, it returns true.
Add a true/false node and copy and paste this snippet into the Rules field:
{
"in": [
{
"var": "expenseType"
},
[
"receipt"
]
]
}Check if expense is receiptless
You can set up a rule to check if the expense is a receiptless one. If so, it returns true.
Add a true/false node and copy and paste this snippet into the Rules field:
{
"in":[
{
"var":"expenseType"
},
[
"receiptless"
]
]
}
Check if expense is assigned to a trip
You can set up a rule to check if the expense has been assigned to a trip. If it is assigned to a trip, it returns true.
Add a true/false node and copy and paste this snippet into the Rules field:
{
"!=": [
{
"var": "tripId"
},
null
]
}
Check if expense without warnings
You can set up a rule to check if the expense has no notifications/warnings. If it doesn’t have any notifications, it returns true.
Add a true/false node and copy and paste this snippet into the Rules field:
{
"==": [
{
"var": [
"notifications.0"
]
},
null
]
}Check if the expense comes from TravelPerk
You can set up a rule to check whether an expense has Travelperk as provider. If so, it returns true.
{
"==":[
{
"var":[
"travelProvider"
]
},
"travelPerk"
]
}💡 Tip
One common use case for this node is to skip double approval in both Travelperk and Yokoy using a custom workflow.
Alternatively, if you only have Travelperk enabled as travel provider in Yokoy, the approval strategy can also be used to avoid a second approval step in Yokoy. In other words, you enable Yokoy to not require approval for “travel provider” payment method.
Check if the expense has one of two categories selected
You can set up a rule to check whether an expense has either one category or the other selected. Yokoy checks both single category expenses and expenses with multiple categories by using the variable splitcategories.0.categoryId.
✏️ Note
You must change the category Yokoy ID to the ones you want. Otherwise, this example does not work.
{
"or":[
{
"in":[
{
"var":"categoryId"
},
[
"GxjPfl9gGX",
"4QYutTYGSg"
]
]
},
{
"in":[
{
"var":"splitCategories.0.categoryId"
},
[
"GxjPfl9gGX",
"4QYutTYGSg"
]
]
}
]
}
Custom true/false condition (Professional or Enterprise only)
Configure a true/false condition based on specific business rules that you determine in JSON format. For example, you can use this condition to check whether a custom checkbox field has been selected for a tag dimension.
In this case, this condition returns:
True:
The JSON-specified condition is met.
False:
The JSON-specified condition is not met.
✏️ Note
While the Custom true/false may appear similar to the True/false condition, it can “drill down” on objects that are present on the expense
The True/false condition checks data that is indicated on the expense (such as a custom field, value, etc.), while the Custom true/false is able to is able to pull other data. For example, it can check the cost object that the expense is assigned to and check the logic.
You can build complex business rules and serialize them as JSON. The JSON rules are specified in the Rules field of the node options. You can perform this “drill down” for multiple objects:
Tag dimensions
Cost objects
Legal entity
Categories
User
For example, you can:
Check if a custom field is flagged on the tag value object of the expense.
Check if a submitter is the same as the tag approver on the tag.
Check if a custom field is flagged on the category of the expense.
Check that custom field is flagged on tag value
You can set a rule to check if on the tag dimension with a specific Yokoy ID, the custom information checkbox is equal to true (i.e. selected). If so, it returns true.
Identify the custom field in the company on the tag (it may need to be set up by Yokoy). The label field value (
CustomFieldLabel) MUST be specified in the expression below.Add a true/false node and copy and paste this snippet into the Rules field:
{
"==": [
{
"var": "_tags.YOKOYID.customInformation.<CustomFieldLabel>"
},
true
]
}Set up the workflow in the company.
✏️ Note - Custom information fields
Custom information fields can only be set up by Yokoy. You may need to open a support ticket if the custom information field you require doesn‘t already exist in your Yokoy implementation or if you don’t know the name (which may or may not be the same as the label shown in the app).
Check if submitter is tag approver
You can set a rule to check for a tag dimension with a specific Yokoy ID, the approvers on that tag array are equal to the submitter user.
Add a true/false node and copy and paste this snippet into the Rules field:
{
"in":[
{
"var":"userId"
},
{
"var":"_tags.<YokoyTagDimensionID>.approverIds"
}
]
}🚧 Caution
Make sure to change <YokoyTagDimensionID> with your tag dimension ID.
Check for category custom field on the expense
You can set a rule to check if on the category submitted on the expense, the custom information checkbox is equal to true (i.e. selected). If so, it returns true.
Identify the custom field in the category (it may need to be set up by Yokoy). The label field value (
CustomFieldLabel) MUST be specified in the expression below.Add a true/false node and copy and paste this snippet into the Rules field:
{
"some": [
{
"var": "_categories"
},
{
"==": [
{
"var": "customInformation.<CustomFieldLabel>"
},
true
]
}
]
}
✏️ Note - Custom information fields
Custom information fields can only be set up by Yokoy. You may need to open a support ticket if the custom information field you require doesn‘t already exist in your Yokoy implementation or if you don’t know the name (which may or may not be the same as the label shown in the app)
Amount validation (expense) (Professional or Enterprise only)
Configure a true/false condition (guard) if the expense meets an amount condition. For example, you set up the logic to tell Yokoy if the expense is between 10 and 100 CHF to skip the approval flow and go to In review. Otherwise, perform a tag approval flow.
In this case, this condition returns:
True:
The amount condition is met.
False:
The amount condition is not met.
This specific condition comes with different options:
Option | Accepted value | Description |
Aggregation type |
|
|
Operator |
|
|
Currency | String | Currency taken into consideration. |
Threshold amount | Number | Amount for the validation. |
Normalize by number of participants |
| If you select this checkbox, Yokoy checks for the number of participants and divides the expense amount for the number of users that are sharing the expense. |
For example, you set up the logic to tell Yokoy to check if the expense is more than 150CHF (not divided by number of participants). If the expense is more than 150, it returns true.
The aggregation type determines whether a cumulative total is taken for the day or whether each expense is to be checked individually. This is used in scenarios where employees have a daily allowance. For example, for employees with a daily allowance of 40 CHF for lunch, if the single aggregation type is selected in the node, two lunch expenses of 30 CHF return a true to the condition. If day aggregation type is selected and two lunch expenses of 30 CHF are submitted, the second expense results in a false response.
Amount validation (category) (Enterprise only)
Configure a true/false condition if the logic applies. Unlike Amount validation (expense), this condition checks the amount on each expense category. The threshold amount is defined on the category itself, as a custom field, rather than within the condition node.
For example, you set up the logic to tell Yokoy if the sum of the expenses for the category are between 100 and 500 CHF to skip the approval flow and go to In review. Otherwise, perform a tag approval flow.
In this case, this condition returns:
True:
The amount condition is met.
False:
The amount condition is not met.
This specific condition comes with different options:
Option | Accepted value | Description |
Aggregation type |
|
|
Operator |
|
|
Aggregation logic |
|
Categories that do not have a threshold defined are ignored. |
Normalize by number of participations |
| If you select this checkbox, Yokoy checks for the number of participants and divides the expense amount for the number of users that are sharing the expense. |
Set up custom fields for category amount validation
To use this condition, you need two custom field for expense categories:
customInformation.thresholdCurrency: the currency of the threshold (CHF, EUR, etc.)customInformation.thresholdAmount: the amount of the threshold (50, 100, etc.)
These custom fields may need to be set up by Yokoy first. You need to enter thresholdCurrency and thresholdAmount as the Names in the custom field setup.
Name | Label | Type |
| Threshold amount | Text input |
| Threshold currency | Text input |
✏️ Note - Custom information fields
Custom information fields can only be set up by Yokoy. You may need to open a support ticket if the custom information field you require doesn‘t already exist in your Yokoy implementation or if you don’t know the name (which may or may not be the same as the label shown in the app)
This step needs to be done for each legal entity where you want to use the workflow with the Expense category amount validation node.
The threshold amount is set directly in the Category configuration. It applies to expenses submitted for that category and depends on the aggregation type (single/day), operator, and logic set up in the workflow.
Amount validation (trip) (Professional or Enterprise only)
configure a true/false condition (guard), in expenses with trips, to check whether the total claim of the trip exceeds the defined threshold (in the legal entity currency). For example, you set up the logic to tell Yokoy if the trip amount is more than the threshold specified.
In this case, this condition returns:
True:
The amount condition is met. The trip total claim is greater than the threshold amount.
False:
The amount condition is not met. The trip total claim is less than the threshold amount.
This specific condition has one option:
Option | Accepted value | Description |
Threshold amount | Number | The threshold amount for the validation. This amount is compared with the total trip claim. For example, 100. The currency is taken from the legal entity. |
Tax rates incomplete (Enterprise only)
Configure a true/false condition to determine if the document has been assigned a tax rate and whether the tax amounts extracted from the expense are correct.
True: If the tax code is incomplete or the sum of the tax amounts is incorrect, it returns true.
False: If the tax code is complete and the sum of the tax amounts is correct, it returns false.
For example, if an expense has taxes (with or without split categories) but the tax code is missing or the gross tax amounts do not add up to the total claim, it returns true.
The node includes two options:
Option | Accepted values | Description |
Exclude zero tax rates |
| If selected, Yokoy does not consider zero% rates as “eligible rates”. |
Return false for allowances |
| If selected, Yokoy ignores allowances. |
By default, Yokoy considers zero tax rates to be an eligible tax rate and returns false if an expense has a zero tax rate selected. You can override this behavior by selecting the Exclude zero tax rates checkbox, which means if an expense has a zero tax rate, it returns true.
In addition, you can exclude allowances (per diems) from this tax rate check since allowances do not usually contain tax.
Submission to own cost centers (Professional or Enterprise only)
Set up a condition that returns true/false if the expense’s cost object is the same as the submitter’s cost object. In this case, this condition returns:
True: The owner of the cost object assigned to the expense is the same person who submitted the expense.
False: The owner of the cost object assigned to the expense is not the same as the submitter user.
For example, an expense is submitted by the user Alex Smith and assigned to the cost object “Manufacturing”. The owner of the manufacturing cost object is Alex Smith. In this case, Yokoy returns true. Another user Jan submits an expense to the same cost object. In this case, Yokoy returns false.
Submitter with property (Professional or Enterprise only)
Configure a condition node that returns true/false if the submitter contains a specific property. You can check any user property such as name, email, line manager, as well as custom fields.
In this case, this condition returns:
True: The cost object associated with the submitter’s expense has a specific property value.
False: The cost object associated with the submitter’s expense does not have the specific property value.
For example, if the condition is set up with the Line manager property and matches Alex Smith,
If a submitted expense is created by a user whose line manager is “Alex Smith“, it returns true.
If a submitted expense is created by a user whose line manager is “Devis Hirt“, it returns false.
Option | Accepted values | Description |
Property | String | Name (ID) of the field to be checked on the cost centre. For example, it can be any fields present on the cost object, from the cost object name to a custom field. |
Matches | String / Number / Boolean | Value of the cost object property to be checked. To add multiple values, click + Add row. |
Setting up submitter property validation on a custom field
For example, if you want to check if the user in the custom field Target Administration has value “G000" or "G001":
Identify the custom field created in the user. If this is not already set up, you may need to contact Yokoy support to do this. Remember the Name value, as you need it in the next step.
- Name: customInformation.targetAdministration
- Label: Target administration
- Type: Text input
Click the Submitter with property node in the Workflow Designer and enter this data. Since you want to check multiple values, enter the value “G001” and then click + Add row to add the second value “G002“:
- Property: customInformation.targetAdministration
- Matches: G001
- Matches: G002
In this case, Yokoy checks if the submitter has this property. If true, it performs a cost object approval. If false, it moves the document to “In review”.
Cost center with property (Professional or Enterprise only)
Configure a condition node that returns true/false if the cost object contains a specific property. You can check any cost object property such as cost object name, ERP code, custom fields, etc.
In this case, this condition returns:
True: The cost object associated with the submitter’s expense has a specific property value.
False: The cost object associated with the submitter’s expense does not have the specific property value.
For example, if the condition is set up with the Name property and matches Sales,
If a submitted expense is input to the cost object with name “Sales“, it returns true.
If a submitted expense is input to the cost object with name “Manufacturing“, it returns false.
Option | Accepted values | Description |
Property | String | Name (ID) of the field to be checked on the cost centre. For example, it can be any fields present on the cost object, from the cost object name to a custom field. |
Matches one of | String / Number / Boolean | Value of the cost object property to be checked. To add multiple values, click + Add row. |
Requires independence |
| If you select this checkbox, the cost object approver must not be the same as the submitter. If the cost object approver is the same as the submitter, it returns |
Require approvers |
| If you select this checkbox, the cost object must have an approver. If the cost object (even if it is a match) does not have an approve, it returns |
Setting up cost object property validation on a custom field
For example, if you want to check that the cost object submitted on the expense has been flagged as a special cost object (Special cost object checkbox equals true):
Identify custom field in the cost object. If not available, you may need Yokoy Support to set this up. Remember the Name value, as you need it for the next step:
- Name: customInformation.specialCostObject
- Label: Special cost object
- Type: CheckboxClick the Cost object with property node in the Workflow Designer and enter this data:
- Property: customInformation.specialCostObject
- Matches: true
Since you want to check whether the checkbox is flagged or not, enter the value “true”. In this case, Yokoy checks if the submitted cost object on the expense is a special cost object. If true, it skip the cost object approval. If false, it performs the the approval flow.
Paid with company card
Configure a true/false condition to check if an expense has been paid with a company card.
In this case, this condition returns:
True: The expense is paid with a company card
False: The expense is not paid with a company card.
🚧 Caution
This node is used as a card export condition. It MUST always be placed at the end of the workflow to differentiate the export path. It can also be used in other scenarios, such as after a submit action to route expenses to a different flow.
Expense age ≤ max. threshold (Professional or Enterprise only)
This node allows you to check the age of an expense and ensure it doesn’t exceed a maximum threshold. If the expense exceeds the maximum set, then it returns a false.
It is typically used to design workflows where you need to check if an expense date is not older than a certain number of days.
The node performs the following calculations:
Checks the Expense date/payment date on the expense.
Computes the difference between today’s date and the Expense/payment date on the expense.
Compares with the value entered in the node’s configuration (max. age in days).
Returns:
if the difference > max. age:
falseif the difference < max. age:
true
For example, companies often want to prevent users from submitting expenses that are older than a month or two. With this node, it is possible to define a specific workflow path that if the expense is older, it cannot be submitted.
Option | Accepted value | Description |
Max. age in days |
| This fields allows to specify the maximum amount of days after which the expense is considered to not meet the condition. Only numeric numbers are allowed (e.g. 1, 2, 3, 30, etc.) |
Expense activity nodes
Expense activity nodes perform a specific action on the document in the workflow.
You can perform these actions in the workflow:
Assign custom cost object approvers (Enterprise only)
Assign all tag approvers (Professional or Enterprise only)
Assign static approver (Enterprise only)
Assign approvers with property (Professional or Enterprise only)
Assign all cost object line managers (Enterprise only)
Workflow notification (Enterprise only)
Trigger an error (Enterprise only)
✏️ Note
Before the activity node, you need a status node (Draft, Needs revision).
After the activity node, you can add any other workflow node type (status, activity, condition or approval nodes). No action path is required.
Assign all cost object approvers
Assign all the cost object owners as approvers. Technically, it iterates through the various cost objects of the expense, extracts the cost object owners, and assign them for approval.
💡 Tip
Use with cost object approval to create a cost object flow.
For example, you configure Yokoy to assign all cost object owners and require approval from all owners when an expense is submitted.
In this case, this condition returns:
True: If Yokoy cannot find an approver, it keeps the document in the same status.
False: If Yokoy cannot find an approver, it moves the document to the next status.
🚧 Caution
If you have delegates with an expiry delegation date in the past, they are not included in the assignment for approval. These delegates are ignored as their expiration date has past.
Assign custom cost object approvers (Enterprise only)
Determine all the cost object owners as approvers.
Technically, it iterates through the various cost centres on the expense, and assign approvers based on the properties specified in the options.
💡 Tip
Use with cost object approval to create a cost object flow.
This node comes with options that must be completed:
Option | Accepted values | Description |
Cost object field | String | The field on the cost object to be looked up. |
User field | String | User property on the cost object. |
Required approvers |
|
|
Transformations |
| If you want Yokoy to ignore case for the user field, select this checkbox. |
For example, you want to assign a special user (which is not the cost object owner) for approval using the cost object on the expense:
Check for the
approverMailcustom field in the cost object (if not available, you may need Yokoy to set this up for you).Reference the cost object field (in this case, the custom field
custom.Information.approverMail) and the corresponding user value where you'll find the mail to identify that user (in the standardemailfield).In this case, you can specify any user mail you want on the cost object, and Yokoy assigns that user. So the submitter codes the cost object in the expense. From that cost object, Yokoy picks the user specified with that mail address.
✏️ Note
This field is not case sensitive. If you write “USER.COMPANY@COMPANY.com”, Yokoy can parse this as “user.company@company.com” using the Transformations field.
Assign all tag approvers (Professional or Enterprise only)
Assign all tag approvers with a given tag value found on the invoice document as approvers.
Technically, it iterates through the various line items of the invoice, extracts the tag values approvers and assign them for approval.
💡 Tip
Use with final approval to create a tag approval flow.
The node comes with two options:
Option | Accepted value | Description |
Require approvers |
|
|
Tag dimension ID | String | Tag dimension to be used. You can specify one or multiple tag dimensions to be considered by Yokoy. You can add as many dimensions as you want. For example, you can set up two tag dimensions on the expense: one for approval and one for coding. You can also set up Yokoy to consider just the one you want. If you leave the tag dimension ID empty, by default Yokoy considers all dimensions on the document. |
🚧 Caution
Tag dimension IDs are specific for each environment and organization.
There are two options when configuring tag workflows regarding IDs:
Do not enter any tag dimension ID in the workflow: The workflow considers all tag dimensions on the invoice document. This means that the workflow could be reused across environments, without amendments.
Enter tag dimensions IDs in the workflow: The workflow considers only that tag dimension. This means that you would need to create first a workflow entering the TEST tag dimensions ID and another workflow with the PROD tag dimension IDs.
For example, you set up Yokoy to assign all tag approvers upon submission. Any of the tag approvers can approve and finish the workflow.
Assign line manager
Set up a step to assign all line manager of the user who submitted the expense as approvers.
🚧 Caution
It must be used with Line manager approval or escalate.
The node comes with one option:
Option | Accepted values | Description |
Discard delegate independence |
| By default, the delegate is only added if it is not equal to the submitter or the expense user. You can use this checkbox to indicate the delegate should be added, even if it is equal to the submitter/expense user. |
Assign static approver (Enterprise only)
Set up an approver by a specific ID. In short, it assigns a specific user for approval for the legal entity. It is often used to assign a final user for approval if certain conditions are met, such as for expenses greater than 50K, assign the CEO.
This node comes with one option:
Option | Accepted values | Description |
Approver ID | String | User ID of the user to be used for approval. You can add multiple users by clicking + Add row. |
For example, you can set up an activity to get Yokoy to assign a specific user as approver.
Assign approvers with property (Professional or Enterprise only)
Determine approvers based on a specific user property. It can be used to create approval groups or to dynamically assign users based on specific custom properties that can be set on the user profile.
In this case, this condition returns:
True: it requires an approver with the options specified in the action. If the approver is not present, it does not move forward.
False: it requires an approver with the options specified in the action. If the approver is not present, it does move forward.
This specific condition comes with options that must be completed:
Option | Accepted values | Description |
Property | String | User property data field. For example:
|
Value | String / Number / Boolean | Value of the attribute in Yokoy. For example:
|
Ignore claimant |
| When looking up the property field, if a list of users is found, Yokoy drops the “claimant” ( user to whom the expense belongs). This is not necessarily the user who submits it because it could have been created be an assistant or finance user. |
Ignore previous approvers |
| When looking up the property field, if a list of users is found, Yokoy drops whoever already gave the approval. |
🚧 Case-sensitive properties
The Workflow Designer take into account case. Therefore, make sure that you write in the property in lowercase: true or false. Otherwise, the Workflow Designer does not recognize the Boolean value.
❗️Warning
Make sure that at least one user has the checkbox selected; otherwise, Yokoy is unable to assign approval and the workflow fails.
The Ignore claimant and Ignore previous approver checkboxes let you restrict behavior if a list of users is found for the property. For example, an expense is first approved via cost object. Then an additional approval is carried out by the executive team (configured via flag on the user). If the CFO already approved (i.e. as part of the cost object approval in the first stage), in a second stage he does not have to approve as well if the Ignore previous approver checkbox is selected. Otherwise, the CFO is required to approve the same expense twice. This option implements the Four Eyes Principle: if two independent approvers are needed, this option guarantees it.
For example, you can set up Yokoy to assign all the users with the property customInformation.TeamA equal to true as approvers. This means all the users with the checkbox Team A selected on their profile, are assigned for approval.
Assign all cost object line managers (Enterprise only)
Assign the line managers of all the cost object owners as approvers. It checks the cost object value and assigns the line manager of the cost object owner who respects these conditions. If no dynamic escalation is provided, it assigns the line manager of the CO owner, in general (without checking)
For example, you configure Yokoy to assign the line managers of all cost object owners and require approval from all owners when an invoice is submitted.
💡 Tip
Use with an approval node such as Final approval.
In this case, this condition returns:
True: If Yokoy cannot find an approver, it keeps the document in the same status.
False: If Yokoy cannot find an approver, it moves the document to the next status.
Workflow notifications (Enterprise only)
This node lets you set up Yokoy to send an informative message when certain action/condition occurs.
Unlike Trigger an error, this activity node just sends information to the user, so that they can acknowledge it and move onto the next step.
The node has two options:
Option | Accepted values | Description |
Notification text | String | This is the text you want to send to the user when the action occurs. |
Notification type | Info / Warning / Error | Type of notification sent to the user. Depending on how important the information is, the user see an information message, a warning or an error. |
In Yokoy, users see a red error message, a yellow warning message or a blue information message. For example, you can set up a notification to be triggered where the expense needs additional approval because is more than a certain amount saying “Additional approval required“:
Trigger an error (Enterprise only)
This node lets you configure Yokoy to send an error message when a certain action/condition occurs.
Unlike Workflow notification, this activity node stops the workflow completely and does not add any additional logs to the document itself.
This node has one option:
Option | Accepted values | Node |
Error message text | String | This is the error message you want to display to the user. It is a text message that is displayed as a result of the action. |
Expense approval nodes
Expense approval nodes complement activity nodes in the workflow to perform specific business logic.
The Workflow Designer includes these approval nodes:
Final approval (Professional or Enterprise only)
All approvers must approve (Enterprise only)
✏️ Note
Before an approval node, you need an activity node.
After an approval node, you need Need revision, Draft, Rejected, and In review status nodes.
Final approval (Professional or Enterprise only)
Use this node to set up several types of approval flow, depending on what you need.
Technically, what this node does is when multiple or one approver is assigned to a document, when that user approves the document, it clears the list of approvers from the document and moves forward to the next step in the flow. In other words, it lets any approver end the approval flow and move the document to the next step in the workflow.
💡 Tip
Use this node with these activity nodes:
Assign approvers with property: it skips the approvers list, resulting in “any” of the approvers able to end the approval flow.
Assign custom cost object approvers: it skips the approvers list, resulting in “any” of the approvers able to end the approval flow.
Assign all tag approvers: creates an “any” all tag approvers approval flow, meaning that anyone of the assigned approvers on the tag values can end the approval flow.
Assign static approver: it skips the all the approvers on the list, resulting in “any” of the approvers able to end the approval flow.
Cost object approval
Configure a cost object approval flow. Technically, what it does is it takes the approver/list of approvers created by the activity node and sends the document for approval to that user until all users on the list have given their approval.
It is used in combination with Assign all cost object approvers or Assign custom cost object approvers activity nodes.
This node can perform escalation to the parent cost object. This occurs in standard Yokoy workflows in these cases:
If the submitter is the cost object owner, the expense is sent to the owner of parent cost object for approval.
If the approval threshold on the cost object is exceeded, the expense is sent to the parent cost object owner.
Option | Accepted values | Description |
Check for independence | Boolean (true/false) | Escalates to the parent cost object if the submitter is equal to the approver on approval. This means that when a user approves, Yokoy checks if it was the submitter. If so, it escalates approval to the parent cost object. |
Escalate to parent cost object | Boolean (true/false) | Yokoy checks the approval limit on the cost object. If the approval limit is breached, it escalates the document to the parent cost object. |
If the expense is escalated automatically using this node, this information is recorded in the expense history:
Line manager approval or escalate
Configure a special approval flow in combination with Assign line manager.
🚧 Caution
This node must be used before the line manager assigner; otherwise, it does NOT work.
This specific node has one option that must be set up:
Option | Accepted values | Description |
Amount reference |
|
|
All approvers must approve (Enterprise only)
Set up an approval flow in which all approvers must approve before the document can be moved to the next status. Technically, what this node does is the following:
Once an approver approves, it removes the approver ID from the list of current approver IDs.
Assigns the document to other approvers assigned to the document who still need to approve.
Once all approvers have approved the document, it moves the document to the next step in the flow.





