Skip to content

Advanced Workflow Actions and Conditions

Most teams route approvals by category and value and never touch this page. The workflow engine behind approvals can do more, but those capabilities serve a small number of complex setups.

This is a reference for those cases: the other actions a workflow can run, the events that fire them, and the conditions that gate them.

Requesting approval is one action a workflow can run. An event can run several actions in response, and most have nothing to do with approvals. Each action is added from the Add action menu on the Workflows screen and attached to an event.

ActionWhat it does
NotifyEmails a role on the contract (owner, approver, requester, and others). Recipients resolve dynamically, so the right person is emailed even as ownership changes.
Set contract statusMoves the contract to a specific status (for example, Pending Signature once approved).
Set propertiesStamps values onto the contract’s properties automatically (for example, recording the creator as the contract owner).
AssignAssigns the contract to a user.
Set groupAssigns the contract to a group, which can also change which set of workflow actions applies (a group can use a different workflow view).
Set approversPre-sets the approver chain and order before an approval request is sent.
Set signersSets the default signers and their order for the e-signature step.
Request signatureSends a signature request through your e-signature provider.
Run AI TasksRuns AI tasks such as property extraction, party extraction, or a playbook review.
Begin form sequenceStarts a form sequence for the contract.
Add noteAdds a note to the contract’s timeline.
Create remindersSchedules reminders tied to the contract.
Send webhookPosts contract data to an external URL so another system can react.
Trigger workflow eventFires another workflow event with the current contract context, chaining one event into another set of actions.
Finalize contractRuns the lifecycle finalize step. This is distinct from Set contract status: finalizing locks the contract for the next stage, not just changing the status label.

Most actions run automatically when a lifecycle event fires. You can also expose an event as a button on the contract that a user presses on demand. The button’s label, icon, placement, available statuses, and confirmation message are all part of the event’s configuration.

Use this when a step should happen only when a human decides: a “Send for finance review” button, a “Re-run extraction” button, or a “Notify legal” button a contract owner clicks when they judge it is time.

Beyond the built-in lifecycle events (form submitted, contract finalized, approval accepted, signature completed, and so on), an administrator can create a custom event for your company. Custom events appear under the Custom group in the events list and are wired up the same way as built-in events: attach actions, attach conditions.

Custom events are typically paired with the Trigger workflow event action or a manual-trigger button, so you can define a named moment in your own process (“contract escalated,” “review requested”) and hang automation off it.

Every action can be gated by conditions so it only runs for the contracts it should. Conditions are grouped into rule sets with all (AND) or any (OR) logic. The full set of things a condition can test is below.

Condition tests…Use it to…
CategoryBranch by category (NDA vs MSA vs procurement).
Contract propertyCompare a property value (value over a threshold, a risk flag set, a specific list option chosen).
FormMatch the form a contract came from.
Form sequenceMatch a specific form sequence.
Contract sourceBranch by whether the contract is a Playbook, Template, or External contract.
Contract statusMatch the contract’s current status.
Contract ownerMatch (or exclude) specific owners.
Is contract assignedTest whether the contract has an owner yet.
AI task typeBranch by which AI task ran (for example, property extraction).
Has counterpartyTest whether the contract has any parties.
Party attributeMatch a party’s custom attribute.

Property comparisons use the operators that fit the property type: equals and not-equals for text; greater-than, less-than, and their inclusive variants for numbers; includes and does-not-include for multi-option fields; and true/false/empty tests for yes-no fields. See Routing Approvals by Category, Value, and Properties for worked examples.

"Button on the contract" Manual-trigger event
"Our own trigger / milestone" Custom event
"Rule", "check", "if/then" Condition (rule set)

Chat with us

We typically reply within a few minutes