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. |
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
Open or create a Workflow Automation rule.
In the Trigger or Action section, add the field you want to evaluate, populate, or update.
Select Use a Formula.
Enter the formula.
Save and activate the workflow.
Test it with a sample record.
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.
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. |

