Summary
When to Use Automations Versus Other Planhat Features:
Saving Data: broadly speaking, Saving Data is a static operation, and therefore the Automations are best suited.
Moving or Transforming Data: when it comes to moving and transforming data, there are a few additional considerations to make when deciding between Formula Fields and Automations.
Sending Data: Planhat's API is the most efficient way to send data to and receive data from Planhat. However, with Webhooks, Automations allows you to send and receive data in Planhat with minimal setup.
Sending a Notification: Automations are a great place to set up extremely targeted custom notifications, whether they're delivered within Planhat, via Email, or through Slack.
Contacting Customers: contacting customers is one of the most common Automation use cases across Planhat. As a rule, Planhat's specialised tools are best suited to customer communications, although you can also trigger template-based email campaigns using Automations.
Who is this article for?
All Planhat users.
Users who are looking to utilise Automations to streamline processes.
Series
How to Choose Between Automations and Other Planhat Features ⬅️ You are here
Article contents
Introduction
While Automations, take the form of "When this happens" "Then do that" flows, it's not the only place you can automate things in Planhat. More subtle and specialised forms of automation, such as Workflows, Portals, and Surveys also exist, to allow you to: automate your workflows or email campaigns, share live updates and tasks with your customers, or retrieve timely feedback.
However as you become more familiar with Planhat, it'll become clear when you should use built-in functionality (Formula Fields, Company and End User Workflows, Actions module Notifications, NPS Surveys, and Portals), versus Automations.
🚀 Tip
A key difference between built-in functionality and IF-THEN Automations is that, while the former have limited (if any) logging, the latter has extensive Execution Logs, providing you with clear visibility into what triggered certain actions, what those actions are, and when they were taken.
Automating Data
When it comes to automating data, there are two key options: Automations ("IF-THEN" Automations), and Formula Fields, fields whose values are generated by means of a formula - which can be a simple mathematical operation, formula referencing properties on the same object, or on different objects.
The key differentiator between these is that an Automation fires when certain criteria are met, at a certain point in time. This means it executes data operations discretely. Conversely, Formula Fields are being re-calculated continuously - anywhere from instantaneously, to every a few hours - depending on complexity.
Moving or Transforming Data
When it comes to moving and transforming data, there are a few additional considerations to make when deciding between Formula Fields and Automations.
Moving Data:
Determine if Formula fields can move the data where you want it to. Automations are much more flexible than formula fields, for example:
Formula fields can only extract data from other objects onto the Company object. For example, if you're on the License object you can't use a Formula field to extract data from the Company object. Check out this article to learn more about Formula field structural rules.
The following field types do not support formulas:
rating
day
list
multipicklist
team member
team members
url
phone
email
enduser
endusers
There are cases where you could use an automation or a formula field, for example, when a ticket is created, update the custom date field "Date of last ticket" with the current date.
Automation:
Formula Field:
FIND(Conversation.createdAt & {"filters": [{ "op": "equal to", "field": {"id": "type"}, "value" : "ticket"}], "sort": {"date": -1}, "limit": 1})
You're looking to move just one value (single operation, Formula Field) or move/update multiple values (bulk operation, Automations). For example:
Automation: when a company enters the "Success" phase, update the following fields:
Owner
Co-Owner
Success Date
Formula Field: display the license value for the most recent license that has the status "ongoing":
FIND(License.value & { "filters":[ { "op": "equal to", "field": {"id": "renewalStatus"}, "value": "ongoing"}] , "sort": {"toDate": -1}, "limit": 1})
Transforming Data: Formula Fields are the better choice when it comes to performing most data calculation operations. On the rare occasion that you require a particularly advanced operation, perhaps involving multiple variables and steps, the Automation's JavaScript (Function Execution) editor may be required.
🚀 Tip
Naturally, any operation that you want to be notified about is best suited for Automations, since additional Slack Message, Email or Notification steps ensure you stay alert to any important data operations. That said, if the move or transformation is only possible with Formula Fields, you can always create an additional IF-THEN Automation notifying you of the update.
Formula Fields: real-time calculations are best suited to...
Transforming data live on a single object, particularly involving any mathematical operations applying to numeric or date fields or logical operations involving IF, for example:
Calculating the difference in days between two dates (which can also be achieved via a JavaScript Function Execution using Automations).
Display the difference in days between the current date and a date in a system or custom field:
DAYS_DIFF(@today, <<Add date field name here>>)
Applying an IF statement to populate a field based on the value of other fields (which can also be achieved via a condition & field value using Automations).
Display a specific customer tier based on the ARR value:
IF(<<arr>> > 10000 && <<arr>> < 30000, Mid Market, IF(<<arr>> > 29999, Enterprise,SMB))
Summarising data live from other objects to the company level, for example:
Mirroring a license field at the company level (which can be achieved using an Automation with a GET step mapping from License to Company objects).
Display the sum of all licenses on the company profile:
SUM(License.value)
Counting the number of a certain object associated with the company (which can be achieved via an Automation using a JavaScript Function Execution).
Display the total count of Issues on the company profile:
COUNT(Issue)
Automations: if you're looking to perform...
Summarising or transforming data at a point in time: since Formula Fields create continuous mappings from input properties, they're not useful if you only want to perform a decoupled point-in-time operation, rather than having the value updated constantly (even if only for objects in a certain filter). Conversely, with IF-THEN Automations you can, for example:
Moving or transforming the value from a field which is being synced with an external service (e.g., SFDC) via an integration, to a field which is local to Planhat, so it can be manually updated without any external implications.
Populating a field with the date of the last conversation of a certain type, such as the last Conversation that entered the "Meaningful" filter.
Bulk data moving or transformation operations, for example:
Updating a series of object fields (properties) when they enter a given filter, such as updating the company phase, status and other attributes like Priority or Segment, when the company enters the Onboarding filter (while this can be achieved with a Formula Field, it is much easier to set up, modify and track with Automations).
Storing a snapshot of properties of a company on the churn object at the point it churns, by assigning the current values to custom fields on the churn object.
Creating dynamic URLs, for example, creating a link to a Planhat account to be featured in another service such as SFDC or HubSpot (not possible with Formula Fields)
Sophisticated data transformations requiring JavaScript functions, for example:
Mapping parent-child associations from connected services outside Planhat, such as mirroring the relationships from HubSpot.
Appending values to multipicklist fields, such as adding individual products purchased from licenses as an array in a multipicklist field on the company.
Sending Data
Planhat's API is the most efficient way to send data to and receive data from Planhat. However, with Webhooks, Automations allows you to send and receive data in Planhat with minimal setup:
Automations: Webhook steps allow you to push data to and delete data from any Webhook URL, based on any condition:
POST (create) data to the URL
PUT (update) the entire data on the URL
PATCH (update) targeted pieces of data on the URL
DELETE (erase) data on the URL
🚀 Tip
Using Automations can also send data to Planhat's API endpoints, which allows you to create time-series custom metrics from static CRM values. Speak to your Technical Account Manager or Customer Success Manager if you're interested in this approach.
Automating Workflows
Automating workflows in Planhat is less clear-cut than data automation since there are multiple alternatives to using Automations, each meeting different, targeted use cases.
Here's a summary of how they differ:
Automations: activities, notifications and customer contact are initiated as standalone actions intended to react to situations, rather than reshape outcomes. Once the firing criteria are met and the action is taken, the flow is complete.
Workflows: a sequence of predictable internal tasks and/or customer contact with a well-defined initial state (entry criteria e.g., Churn Risk) and objective end-state (exit criteria e.g., Renewal or Expansion). The flow continues generating tasks and/or email communications until the objective has been met).
Portals: shared workspaces where, among many other things, you can work on executing company Workflows alongside your customer, collaborating to get them to a desirable end-state
NPS Surveys: campaigns designed to receive structured, objective feedback from the customer, to receive as many responses as possible, from specific customer segments at a time.
Scheduling an Activity
Company Workflows: optimal if you're looking to schedule a sequence of activities when a certain initial condition is met, both for your internal team and to share with your customer via their portal, for example:
120 days before renewal, for High Touch customers:
Review the customer profile and key adoption metrics.
Customer to complete a structured list of needs in the Portal.
Schedule a 90-day alignment meeting to discuss upcoming objectives.
Prepare dashboards to present key values created.
Confirm new terms with decision-makers.
Sign the renewal and upload the contract.
Move the company to the success phase.
Exit the Workflow automatically (once the company is in the success phase).
Automations: best if you want an isolated, internally-facing activity to be scheduled in response to a certain event or change in state, for example:
120 days before renewal, for High Touch customers send a message to the #upcoming-renewal Slack channel, mentioning the account Owner; and create a task to schedule a 90-day alignment and review the customer profile.
Sending a Notification
Automations are great for setting up extremely targeted custom notifications, whether they're delivered within Planhat, via Email, or through Slack. However, Notification Preferences should be your first stop if you're looking to keep up to date with key events, such as added companies, churns and Workflow assignments.
The Actions module > Notification Preferences: the best approach for simple pre-configured notifications relating to in-app notifications which appear in the Actions module "Updates" folder, notifications to your email address, or via our Slack bot.
Automations: a far more custom approach, allowing you to push notifications to Planhat, Email or Slack. Key differentiators from simple notifications in the Actions module are:
These actions can be based on any event (including an incoming Webhook).
The associated message is fully customisable.
Contacting Customers
Contacting customers is one of the most common Automation use cases across Planhat. As a rule, Planhat's specialised tools are best suited to customer communications, although you can also trigger template-based email campaigns using Automations.
Automations: the email campaign action allows you to send out a templated email to a selection of end users meeting specific criteria. Automation standalone IF-THEN campaigns are optimised for reaction, rather than re-shaping outcomes (which requires End User Workflows!), for example:
Send a Welcome email to any new user (the first time they are seen).
Send a decision maker a reminder email 90 days before their renewal.
Notify a champion about any updates to their portal.
End User Workflows: much like Company Workflows, these are predictable email campaign flows with well-defined initial and end states, optimised for shaping user behaviour, rather than reactive reminders - for example:
For end-users at companies in Adoption who haven't logged in in the past 7 days:
Send an email reminder to log in, referencing a useful feature of your product, conditional on their function.
Send a follow-up 2 days later to end users who still haven't opened the previous email.
To users who opened the email but didn't log in, send another email with a login call to action, 3 days after the original email.
Exit the Workflow automatically (for end users who logged in at least once since the Workflow was initiated).
NPS Surveys: best suited if the objective is to solicit structured feedback from your end users, rather than nudge them into action
Portals: designed to allow automatic collaboration with your customers, sharing Company Workflows (task flows) and unstructured feedback
Now you've got a good sense of when to use Automations, or one of Planhat's built-in features (Formula Fields, Workflows, Actions module Notifications, NPS Surveys, and Portals) it's time to get automating! 🤖