Skip to main content

How to use Formulas in Workflow Automation

Use formulas to copy data, calculate values, work with dates, and populate dynamic fields in Workflow Automation.

Written by Chris Clark

When you configure a trigger value or an action field, Copper can use either a Standard value or a formula. Standard values stay the same every time. Formulas produce dynamic values based on functions, text or numbers you enter, and fields on the record that started the workflow.

Value type

What it does

Example

Standard

Enters the same value every time.

Task Due Date is a specific date always.

Use a Formula

Produces a dynamic value.

Task Due Date is based on another variable.

Record context: A formula variable references a field on the record used in the workflow trigger. It does not reference a separate record created by the action.

Workflow action showing a Standard value for Task Name and Use a Formula for Due Date.

Choose Use a Formula when the field value should be calculated or copied from the triggering record.

How a formula works

A formula can contain functions, literals, and variables.

Component

Purpose

Examples

Function

Tells Copper what to do.

CONCAT(name," - Onboarding")

Literal

A value entered directly in the formula.

10

Variable

Represents a Copper field on the triggering record.

monetary_value (value field)

Add a formula

  1. Open or create a Workflow Automation rule.

  2. In the Trigger or Action section, add the field you want to evaluate, populate, or update.

  3. Select Use a Formula.

  4. Enter the formula.

  5. Save and activate the workflow.

  6. Test it with a sample record.

Task action with CURRENTDATE() in the Due Date field and primary_contact_full_name in the Description field.

This action creates a Task due on the workflow date and inserts the Opportunity primary contact name in the description.

Formula syntax rules

  • Put literal text inside straight double quotation marks: "Example text".

  • Do not use curly quotation marks: “Example text”. Curly quotes can cause a parsing error.

  • Separate function values with commas.

  • Do not put quotation marks around functions or variables.

  • Include opening and closing parentheses for every function.

  • Prefix a custom field key with cf_.

  • Use a readable-text variable when inserting a name into a text field.

Example: add text to an Opportunity name.

CONCAT(name," - Onboarding")

If the Opportunity name is Google Opportunity, the formula returns Google Opportunity - Onboarding.

Copy-ready formula examples

Goal

Formula

Notes

Use the current date

CURRENTDATE()

Useful for a Task due date.

Add 10 days to the current date

DATEADD(CURRENTDATE(),10)

Returns a date 10 days later.

Add text to an Opportunity name

CONCAT(name," - Onboarding")

Use with an Opportunity trigger.

Include the primary contact name

CONCAT("Follow up with ",primary_contact_full_name)

Use with an Opportunity trigger.

Calculate 5% of Opportunity Value

monetary_value * 0.05

Useful for commission fields.

Round a calculation

ROUND(monetary_value * 0.05)

Returns a whole number.

Use zero when Value is blank

IF(ISBLANK(monetary_value),0,monetary_value)

Provides a fallback for a blank field.

Convert a name to uppercase

UPPER(name)

Returns uppercase text.

Get a custom dropdown value

GETVALUE(cf_sales_region)

Returns the selected option.

Combine a dropdown value and text

CONCAT(GETVALUE(cf_sales_region)," - MM")

Uses straight double quotes.

Reference a custom field

Custom field variables use this pattern:

cf_<field_key>

For example, a custom field with the Workflow Automation Key "sales_region" is referenced as:

cf_sales_region

For a dropdown field, use GETVALUE() when you need the displayed option:

GETVALUE(cf_sales_region)

When you create or edit a custom field, enter a Workflow Automation Formula Key if the field will be used in Workflow Automation. WFA Keys are permanent once entered, so choose a clear, reusable key.

Use the Workflow Automation Key to reference a custom field in a formula.

Choose an ID or readable-text variable

Some relationship fields have both an ID variable and a readable-text variable. Use the ID when the destination is another relationship field. Use the readable-text version when the destination is a text field.

What you need

Variable

Assign the record to the same owner

assignee_id

Insert the owner name into text

assignee_full_name

Link to the same Company

company_id

Insert the Company name into text

company_name

Link to the same Pipeline

pipeline_id

Insert the Pipeline name into text

pipeline_name

Link to the same Primary Contact

primary_contact_id

Insert the Primary Contact name into text

primary_contact_full_name

Work with blank and null values

Provide a fallback for a blank value

Use IF() with ISBLANK() to return a default value when a field is empty:

IF(ISBLANK(monetary_value),0,monetary_value)

This returns 0 when Opportunity Value is blank and returns the current Opportunity Value when it is populated.

Check for or set a null value

Use NULL in all capital letters when checking whether a supported field is empty or when clearing a supported field.

Two Workflow Automation examples using NULL: one trigger checks whether Owner is empty and one action clears Product 1 Value.

Use NULL in a trigger condition to check for an empty field or in an action to clear a supported field.

Troubleshooting formulas

Issue

What to check

Parsing error

Replace curly quotes with straight double quotes. Check commas and opening and closing parentheses.

A number appears instead of a name

Replace an _id variable with the corresponding _name or _full_name variable.

The formula returns no value

Confirm that the variable is available for the trigger record type, the source field contains data, and the custom field key is correct.

A dropdown formula returns an ID

Wrap the custom dropdown variable in GETVALUE().

The formula uses the wrong record

Variables always reference the record used in the trigger, not a record created by the action.

Related articles

Did this answer your question?