Articles in this section
Authenticate Emails with SPF, DKIM, and SenderID Auto-forwarding your emails to Vtiger Automate Outgoing Emails in Email Settings Automation - Approvals Automation - Assignment Rules Automation - Multi-path Workflows Automation - Scheduled Workflows Automation - Scheduler Automation - Standard Workflows Automation - Webforms Automation - Workflow Action - Create Event Automation - Workflow Action - Create Records Automation - Workflow Action - Create Task Automation - Workflow Action - Invoke Custom Function Automation - Workflow Action - SMS Task Automation - Workflow Action - Send Mail Automation - Workflow Action - Update Fields Automation - Workflow Action - Webhook Configuration - Business Hours Configuration - Company Details Configuration - Consents Configuration - Customer Portal Configuration - Maps Configuration - Usage Details Configure Encrypted data fields in Vtiger CRM Configure Picklist Dependencies Considerations for Deactivating Vtiger Users Control Fields and Record Displays using Configuration Editor Create Reminders for Records and Inbox Create a field of a Grid type Customize your self-service portal theme using CSS styles Dealing with Currencies and Taxes Enable Desktop Notifications on Chrome Web Browsers Extensions - Extension Store IMAP Configuration - 2-way sync between Vtiger and IMAP providers Inventory - Payments and Subscriptions Inventory - Tax Management Inventory - Terms and Conditions Login to Vtiger on SSO SAML using ADFS Mailroom Functionality in Different Scenarios Manage Global Picklists Manage Multiple Currencies Marketing & Sales - Forecast and Quota Settings Marketing & Sales - Pipelines and Stages Marketing and Sales - Deal to Project Mapping Marketing and Sales - Lead Conversion Data Mapping Marketing and Sales - Profile Scoring Module Management - Labels Editor Module Management - Module Numbering My Preferences My Preferences - Calendar Settings My Preferences - My Tags My Preferences - Notification Preferences SAML Support in Vtiger CRM Set up Mailroom Settings - Configure Module Settings Settings - Create Dynamic Fields and Layouts Module Management - Creating a Relationship Between Modules Settings - Customize Records and Fields for your Business Settings - How to set email autoresponder to Webform submission? Settings - Left Menu Settings - Manage Global Picklists in Vtiger Settings - Set up your Support Team Settings - Start Up Page Settings - Working with Picklist Values Module Management - Module Builder Support - SLA Policies Troubleshooting Login Issues Unsubscribe your Email User Management - Authentication User Management - Encrypted Field Access Logs User Management - Groups User Management - Login History User Management - Profiles User Management - Roles User Management - Settings Log User Management - Sharing Rules User Management - Users User Management - Vtiger Support Access Vtiger Buzz - Chrome Extension for Notifications Vtiger Implementation wizard Websense - Trackers Websense - Widgets Working with Picklist field values Adding Additional Hidden Fields to a Webform Configuring Dependent Fields and Blocks for Modules Duplicate Prevention in Modules Module Management - Modules Module Management - Module Layouts & Fields Configuration - Storage Guard

Automation - Workflows - Vtiger Expressions

S
Sabqat Ruba
26 Mar, 2021 - Updated 2 months ago

Introduction

In Workflows’ Update Fields and Create Record actions, you have the option to update field values by means of built-in functions. The functions perform computations such as concatenation of strings, addition and subtraction of days, etc.

 

This article explains in detail each function provided by Vtiger. To skip to the summarized explanation of the functions, click here

 

To learn more about the Update Fields action, click here.

To learn more about the Create Records action, click here.

Functions

Listed below are all the functions provided by Vtiger.


concat(a,b)

This function combines two fields. You can use this, especially to combine Text fields.

For example, if you have a field called Full name, you can combine the first name and the last name using concat(firstname,lastname).

 

The concat() function can combine any number of strings separated by commas. For Example, to form the Billing Address field, the format is concat(Street,’ ‘,City,’ ‘,Pincode).

 

Note: To add a space between the two strings, use single quotes with a white space between them. For example, concat(firstname,’ ‘,lastname).


time_diffdays(a,b)

This function takes Date fields as input. It calculates the difference of time in days between the two fields.

 

For example, you want to know the Support Period of a contact. The difference can be calculated using time_diffdays(support_end_date,support_start_date).

 

The Support End Date is subtracted from the Support Start Date to fetch the result.


time_diffdays(a)

This function provides the difference between the current date and a Date field.

 

For example,

  • You want to know how many days have passed since a case was created. For this, you must use the function time_diffdays(createdtime). In the background, the function operates this way - time_diffdays(current date - created time).
  • To update the Age field in Leads or Contacts depending on the Date Of Birth, the function is (time_diffdays(birthday))/365.


time_diff(a,b)

This function takes Date fields as input and calculates the difference of time between the fields in seconds. 

 

For example, to update the Elapsed Time field depending on the Created Time and Modified Time of a record, you must use time_diff(modifiedtime,createdtime). The function performs the subtraction as follows - time_diff(modifiedtime - created time).


time_diff(a)

This function gives the time difference (in seconds) between the current date and a Date field.

 

For example, you want to know how many seconds have passed since an internal ticket was created. For this, you must use the function time_diff(createdtime). In the background, the function operates this way - time_diff(current date - created time).


time_diffweekdays(a,b)

This function takes Date fields as input and calculates the difference of time (in days) between two fields. The calculation is based only on your working days as configured in your business hours

 

For example, you want to know the Support Period of a contact. You can calculate it using the Support Start Date and Support End Date fields. The difference can be calculated using time_diffweekdays(support_end_date,support_start_date).

time_diffweekdays(a)

This function provides the difference between the current date and a Date field.  The calculation is based only on your working days as configured in your business hours.

 

For example, you want to know how many weekdays have passed since a case was created. For this, you must use the function time_diffweekdays(createdtime). In the background, the function operates this way - time_diffdays(current date - created time).

add_days()

This function allows users to compute a new date. It takes two inputs - a date and a number - separated by commas. It adds the number to the date and results in a new date.

 

For example, you want to provide a customer with a support period of 60 days and update the end date in the Support End Date field. The function would be add_days(start_date,60), where the first parameter is a Date field and the second parameter is the number of days.

 

So, add_days(2020-08-16,60) will result in the date 2020-10-15.


add_weekdays()

This function allows users to compute a new date, taking only weekdays into account. It takes two inputs - a date and a number - separated by commas. It adds the number to the date and results in a new date.

 

For example, you want to update the Actual Closing Date by adding ‘n’ number of days to the Expected Close Date. You can use this function - add_weekdays(closingdate,n).


sub_days()

This function allows users to compute a new date by taking two inputs - a date and a number separated by commas. It deducts the number from the date. 

 

For example, to send an email to a customer ‘n’ days prior to their Support End Date, you can create and update a custom field called Notification Date. The function would be sub_days(support_end_date,n).

 

Note

  • If only the number of days is given as input=t and a Date field is not provided, then the current date is considered for computation. For example, sub_days(3) works similar to sub_days(current date, 3).
  • The add_time(), and sub_time() functions also work similar to add_days() and sub_days().
 


add_time(timefield,minutes)

This function computes a new time by adding the specified time and minutes.

 

For example, consider that an educational institution is conducting an online test. To update the end time of the exam, the function can be used as follows - add_time(exam_start_time, 180).


sub_time(timefield,minutes)

This function computes a new time by subtracting the specified minutes from the specified time.

 

For example, if you conduct a recruitment drive in your company, you can set up candidates’ login time by using the function sub_time(interview_start_time, 90).


today

This function fetches the current date. When you pick this function from the workflow Expressions, it appears as get_date(‘today’).

 

For example, if you need to update the Payment Received date when an invoice Status is changed to Paid, then use get_date('today').


tomorrow

This function fetches the date of the next day. When you pick this function from the workflow Expressions, it appears as get_date(‘tomorrow’).

 

For example, if the Status of a project is changed to Initiated on the current day, then the Start Date of the project is updated with tomorrow’s date. So, the expression would be get_date('tomorrow').


yesterday

This function fetches the date of the previous day. When you pick this function from the workflow Expressions, it appears as get_date(‘yesterday’).

 

power(base,exponent)

This function is used to calculate the power of an integer, such as the square or cube of an integer.

 

For example, 2^3=8 can be simulated using the function power(2,3).

roundoff(field,precision)

This function is used to round off a number to the specified precision. 

 

For example, Amount = 4350.68 is rounded off to 4351 when the function roundoff(amount,0).

if-else statements

To avoid creating multiple workflows to update a single field in a record, you can make use of the if-else statement.

 

For example, to update the Probability field as a deal’s Sales Stage changes, the expression is as follows:

if sales_stage=='Closed Lost' then 0 else if sales_stage=='Prospecting' then 10 else if sales_stage=='Perception Analysis' then 50 else if sales_stage=='Proposal or Price Quote' then 60 else if sales_stage=='Agreement' then 80 else 100 end

Rules for Creating Expressions

  • Define text field values inside the single quotes (‘ ’). For example, first_name==‘John’.
  • Write expressions in lower case letters.
  • Use arithmetic operators to perform Addition (+), Subtraction (-), Multiplication (*), and Division (/). 
    • You can perform these operations between two or more fields, values, or a combination of fields and values.
  • Use only the following relational operators in expressions.
    • Note: Using the assignment operator (=) does not check for the if condition and directly executes the last else condition. You must use only the relational operator (==).
 

Operator

Description

==

Equals to

!=

Not equal to

>

Greater than

<

Lesser than

>=

Greater than or equal to

<=

Lesser than or equal to

 
  • Use binary values for the checkbox fields.
    • 0 for False or No.
    • 1 for True or Yes.
  • Support for AND and OR:
    • AND: All the conditions must match. 
      • For example, If the Sales Stage of a Deal is Qualification and Type is Existing Business, then set the Probability to 70.
        if sales_stage==‘Qualification’ AND type==‘Existing Business’ then 70 end
    • OR: At least one of the specified conditions must match. 
      • For example, If the Sales Stage of a Deal is Dormant or Not Sales Ready, then set Deal Priority to Low.
        if sales_stage==‘Dormant’ OR sales_stage==‘Not Sales Ready’ then ‘Low’ end
 

Checking for empty fields

  • To check for empty integer or currency fields, compare with 0. For example, if Field==0.
  • For other fields, compare with 0 or NULL. For example, if Field==NULL.
  • Note: if Field==’ ‘ does not work. 
 

Other rules

  • To enable a checkbox (or set it to Yes), use 1. To disable a checkbox (or set it to No), use 0.
  • Field values are case sensitive in workflow expressions. For example, if the field City has the value Bangalore, you cannot use city==’bangalore’ in an expression. You must use city==’Bangalore’.
  • To empty a field’s value, use ‘ ‘ or NULL. For example, if contact_name==’John’ description==NULL.  

Summary

Sl. No.

Function Name

Description

1.

concat(a,b)

Combines the two strings ‘a’ and ‘b’

2.

time_diffdays(a,b)

Gives the difference between Date field ‘a’ and Date field ‘b’ (a minus b) in days

3.

time_diffdays(a)

Gives the difference between the current date and the Date field ‘a’ in days

4.

time_diff(a,b)

Gives the difference between Date field ‘a’ and Date field ‘b’ in seconds

5.

time_diff(a)

Gives the difference between the current date and the Date field ‘a’ in seconds

6.

time_diffweekdays(a,b)

Gives the difference between Date field ‘a’ and Date field ‘b’ (a minus b) in weekdays, based on the business hours configured

7.

time_diffweekdays(a)

Gives the difference between the current date and a Date field ‘a’ in weekdays, based on the business hours configured

8.

add_days(a,b)

Adds the number of days in ‘b’ to the Date field in ‘a’, resulting in a date

9.

add_weekdays(a,b)

Adds the number of days in ‘b’ to the Date field in ‘a’ considering only weekdays, resulting in a date

10.

sub_days(a,b)

Subtracts the number of days in ‘b’ from the Date field in ‘a’, resulting in a date

11.

add_time(timefield,minutes)

Adds the ‘minutes’ to the ‘timefield’, resulting in a new time

12.

sub_time(timefield,minutes)

Subtracts the ‘minutes’ from the ‘timefield’, resulting in a new time 

13.

today

Gives the current date

14.

tomorrow

Gives the date of the next day

15.

yesterday

Gives the date of the previous day

16.

power(base,exponent)

Calculates the power of the ‘base’ with respect to the ‘exponent’

18.

roundoff(field,precision)

Rounds the value in ‘field’ to the specified precision

Home Privacy Policy Terms of Service Security Center Policy & Legal Center Contact us
© Copyright 2021 Vtiger. All rights reserved.
Powered by Vtiger
Facebook Twitter Linkedin Youtube