Conditions
A condition picks the path: if it is met, the flow continues down one branch; if not, down the other.
What it looks like
On the canvas, a condition shows as a diamond with two outputs:
- If the condition is met: the steps that run when the condition is true.
- If the condition isn’t met: the steps that run when it is false.
Either branch can be empty. An empty branch means “do nothing in this case”. When the chosen branch ends, the flow continues with the step after the condition, if there is one.
Set up a condition
- Click Add a step › Add condition. Edit condition opens.
- Click Add a condition. The field search opens: type part of the name or browse the list, where each field carries the icon of its type (text, number, amount, options, yes or no, date). Fields marked “checked at run time” are read when the condition is evaluated, not from the event.
- Choose the Comparison from its menu; the selected one has a check mark.
- Type or choose the Value. For an amount you also choose the Currency.
- To add another rule click Add another condition and choose And or Or. To remove one, click the X on its card. Up to 10 rules.
- Click Done.
Each rule is a card. The first one says If; the ones you add with And say And, and a rule added with Or starts a new group, separated by a line that says Or.
And, Or and groups
| Join | Met when | Example |
|---|---|---|
| And | Both rules are true. | Total is at least 50,000 USD and Payment type is Deposit. |
| Or | One complete group being met is enough. | Payment type is Deposit or Payment type is Installment. |
And binds tighter than Or: rules joined with And form a group, and the condition is met when any complete group is met. “If Total is greater than 100,000 MXN and Payment type is Deposit, or if Client contains ACME” is met by a large deposit sale or by any sale to ACME.
For “A and (B or C)”, repeat A in each group: “If A and B, or if A and C”. You can also put a condition inside a branch of another one.
Comparisons by data type
The editor only offers comparisons that make sense for each field.
Text
Number, Client, Currency, Reason, Message, Email, Country and similar.
| Comparison | Met when |
|---|---|
| is | The text is exactly the value. |
| is not | The text is different from the value. |
| contains | The value appears anywhere in the text. |
| does not contain | The value does not appear in the text. |
| is empty | The item has no content. |
| is not empty | The item has content. |
Text comparisons are not case-sensitive: “acme” is “ACME”.
Number
Days past due, Days until it expires, Overdue documents, Pending verification items, Hour and similar.
| Comparison | Met when |
|---|---|
| is at least | The number is equal to or greater than the value. |
| is greater than | The number is greater than the value. |
| is at most | The number is equal to or less than the value. |
| is less than | The number is less than the value. |
| equals | The number is exactly the value. |
| does not equal | The number is different from the value. |
Type the value as a number, without separators: 30, not 30 days. If the event does not carry the number, no numeric comparison is met and the flow goes down If the condition isn’t met.
Amount
Total, Balance due, Amount paid, Promised amount, Disputed amount, Refunded amount, Payout amount, List price and the totals from lookups.
An amount is compared with its currency. Besides the value you choose the Currency, and the rule reads “Total is less than MX$50,000.00”. A new rule starts in your business’s currency and you can change it.
| Comparison | Met when |
|---|---|
| is at least, is greater than, is at most, is less than, equals | The amount is in the rule’s currency and meets the comparison. |
| does not equal | The amount is different, or is in another currency. |
Cord does not convert between currencies to decide: a quote of 49,000 USD is not “less than 50,000 MXN”, because they are amounts in different currencies, so that rule is not met. If you sell in several currencies, add one rule per currency joined with Or: “Total is less than 50,000 MXN” or “Total is less than 2,500 USD”.
Type the value as a number, without symbol or separators: 50000, not $50,000. Without a currency the rule cannot be published: “Choose the currency for “Total”.“ The totals from lookups are in your business’s currency.
Options
Status at the event, Current status, Payment type, Decision, Dispute outcome, Who caused it, Who wrote it and Payment terms.
| Comparison | Met when |
|---|---|
| is | The item has the chosen option. |
| is not | The item has any other option. |
The value is picked from a list, so there are no typos.
Yes or no
Active (products), Can accept online payments and Can receive payouts.
| Comparison | Met when |
|---|---|
| is yes | The item is true. |
| is no | The item is false. |
Status at the event versus current status
Quotes and invoices have two status items, and the difference matters:
| Item | Value |
|---|---|
| Status at the event | The document’s status at the moment the event happened. It never changes. |
| Current quote status / Current invoice status | The document’s status when the condition is evaluated. In the editor it is marked “checked at run time”. |
Right after the event both match. The difference appears after a wait: if a workflow waits 3 days after sending a quote, “Status at the event” still says Sent, but “Current status” says Viewed, Approved or whatever happened in those days.
Rule of thumb: after a wait, always use the current status. That is what lets you ask “is it still unopened?” or “is it still unpaid?”.
Possible quote statuses: Draft, Sent, Viewed, Approved, Rejected, Expired, Paid and Invoiced. Invoice statuses: Draft, Open, Paid, Void and Uncollectible.
What changed, not just what it is
Three events also carry the previous value, so a condition can ask about the change and not only about the current value:
| Trigger | Fields with a previous value |
|---|---|
| A quote is edited and resent | Total |
| A client is updated | Company, Email, Payment terms |
| A product is updated | List price, Active |
On those fields the editor offers two more operators: changed and did not change. You also get the previous value as its own field (Previous total, Previous list price, and so on), usable both in conditions and in your text.
Example: “when a quote is resent, if the Total changed and the Total is lower than the Previous total, tell the owner” — a last-minute discount, which a plain condition on the total cannot tell apart from a deal that was always worth that.
If the event does not carry the previous value, changed and did not change both answer no: an event from before this capability would answer “changed” to everything, and that is worse than not answering.
Multiple branches
When there are more than two paths, use Add a step › Multiple branches instead of nesting conditions. Each branch has its name and its conditions, and after all of them comes Otherwise.
- Cord checks the branches in order and follows the first one that is met, even if another one is also met. Put the strictest first: “Large” (Total is greater than $200,000.00 MXN) before “Medium” (Total is greater than $100,000.00 MXN).
- If none is met, it follows Otherwise, which can stay empty.
- Up to 5 branches fit. Reorder them with Move up and Move down in the panel.
- Each branch needs at least one condition to publish.
- In Runs, the step says which way it went: “Followed: Large”.
Nested conditions
You can put a condition inside a branch of another one, up to 4 levels deep. Example with two levels, triggered by A quote is approved:
- Condition: Total is at least 100,000.
- If met: condition: Currency is USD.
- If met: email the whole team.
- If not met: email the account owner.
- If not met: create a normal follow-up task.
- If met: condition: Currency is USD.
All steps, in every branch, count toward the maximum of 30 steps per workflow.
Common publishing errors
| Message | What to do |
|---|---|
| Add at least one condition. | The condition has no rules. Add one or delete the step. |
| A condition uses a field that does not exist for this event. | You changed the trigger and the new one does not carry that item. Choose another field. |
| Choose how to compare “Total”. | The comparison is missing. |
| Fill in the value for “Total”. | The value is missing. |
| “Total” needs a number. | You typed text in a numeric field. Remove symbols and separators. |
| Choose a valid value for “Payment type”. | The chosen option does not exist for this field. Pick it again. |
In the history
Each evaluated condition appears in the run as Met or Not met, so you know which branch it took. See Runs and errors.