Automated Sales

by | Apr 15, 2022

To demonstrate how you can easily customize RapidStart CRM to meet your needs, we created this "Tips and Tricks" Series. In this series we will outline some simple-to-perform solutions to common things customers ask about RapidStart CRM. Enjoy!

Automating Sales

Many new users of RapidStart CRM have some kind of Sales operation. At Forceworks, we also use RapidStart CRM for all of our own operations including sales. We recently launched a new “all-you-can-eat” services subscription model for Forceworks, and decided to automate the sales process. In this post we’ll explore how you can do something similar.

Before we proceed, let me say that while we have Form and Flow Experts on our Team… I am not one of them. I could have easily had them build all of this, but I am assuming the readers of this post are not experts either, so I decided to build this without their help.

There are three “things” that I will be using for this. First, a “Quote Generator” form on our WordPress website, a Power Automate Flow, and of course our RapidStart CRM Sales instance. I will also be highlighting a great third-party connector that we use for quite a few things across our web properties.

These are the steps:

  1. Create the Web Form
  2. Build the Flow
  3. Enjoy New Customers “Automatically”

Create the Web Form

We use Gravity forms on our website. We also happen to have an “Elite” license for Gravity Forms which costs us $259/year, but most of what I will be showing can be done with their free version.

In addition, we use the Gravity Forms Power Automate Add-On from reenhanced. This is an excellent tool and Nick, Heidi and the team at reenhanced are great to work with. They also have a connector for Contact Form 7 if you are using that. The cost for either is also quite reasonable at $200/year. I had also written about this in a post on my personal blog here.

I created an “Instant Quote Generator”, where based on a couple of questions, the visitor can get a quote for our new “The Works” offering. The form itself “pops” up when you click a button on the offer landing page. If you want to skip ahead, you can see it here.

I have a Priority selector where the customer can indicate what is most important to them, a checklist for Products they are using, and a field for them to enter the number of users. They provide their name and email, and a “Quote” is created behind-the-scenes and sent to their email immediately. Why not just show the price there? Well, it’s not about hiding it, we think the price model is very fair for the offer. But we want to know who is asking, as well as get them into RapidStart CRM. Also, if they are not even willing to provide an email for the quote, they can’t be very serious.

I also added a “feed” to this form (which takes one click) using the Gravity Forms Power Automate Addon. You will see what this does in the next part.

Build the Flow

I have a couple of other posts on using Power Automate here and here. So, using Power Automate I created a flow that does quite a few things for us. First, it waits for a form to be submitted and then captures that form data (This is the magic part of the Gravity Forms Power Automate Addon). Then from the form data, we split the priorities list to grab the submitter’s highest priority. Then we create several variables grabbing and formatting data from the form, as well as creating some known values like our base cost and per-user cost. We also created a variable called “Priority Blurb”. All of these variables will be used later in the Flow.

Among the checklist of products are some that we have an extra charge for, so we have some conditions that check if any of those were selected, and if so increments one of the earlier variables. We then have 12 conditions based on the list of 12 priorities, each of which contains a “Set Variable” to update the “blurb” variable to include the right text in the email.

After that, we do some math with several “Compose” actions and create our email signature and links. Then we create our email which contains a reference to their priority and the “blurb” for that priority as well as all of the cost information and links to explore options or set up a call on our calendar. Lastly, it creates a Prospect record in our RapidStart CRM. A busy flow indeed, but not at all complicated to build.

The Flow has 36 steps. I have no doubt the Experts on my team would have built it differently, consolidating to fewer steps, etc., but it works for me and is easy to update as needed. This Flow uses 3 connectors: Office 36 Outlook, Microsoft Dataverse, and Gravity Forms by reenhanced. Let’s start from the top:

In the first “Trigger” step, I am using the Gravity Forms connector to select the form to which I previously added the Feed. This Flow will trigger whenever that form is submitted and grab all of the data fields.

I am “splitting” the Priorities with a “Compose” action in the next step. The data for that item comes in as a comma-separated line in order of their priorities, so we’ll make that an Array first. The expression is:

split(triggerOutputs()?['body/4'],',')

Then I will grab the first item in that Array in another “Compose” action because that is what I need later. The expression is:

first(outputs('SplitPriorities'))

In the next six steps, I am creating some “Initialize Variables” that we will use later. I am grabbing the number of users from the form data and saving that as an Integer called users. I am creating our standard per-user price as a Float called “userprice”. I am creating the number of products as an integer with a value of 0 (this will be updated later). I am creating our standard extra user price as a Float called price. I am creating our standard base price as a Float called “baseprice”. Lastly, I am creating PriorityBlurb as a String with no value (this will be set later).

The next three steps are conditions that check whether the user selected any “extra cost” products. If any of them are “true”, we use the “Increment Variable” to add “1” to the earlier “NoOfExtras” variable. In our case, the cost for any “extra” is the same.

In the next 12 steps (only showing 2 here), we are checking to see which one matches the GetHighestPriority Compose we created earlier. For the one that will be “true”, we will use a “Set Variable” to put this text into the “PriorityBlurb” variable we created earlier.

Now we’re going to do some math. In the first step, I am creating an integer out of my earlier variable called products. The expression is:

int(variables('products'))

The next step is calculating the users’ price by multiplying the userprice variable by the users variable. The expression is:

mul(variables('userprice'),variables('users'))

Next, we’ll calculate the Extras cost by multiplying the price variable by the products variable. The expression is:

mul(variables('price'),variables('products'))

Now we calculate our Base Total by adding the baseprice and calcextrasprice. The expression is:

add(variables('baseprice'),outputs('CalcExtrasPrice'))

Lastly, we will calculate our total by adding our users’ price and basetotal. The expression is:

add(outputs('CalcUsersPrice'),outputs('BaseTotal'))

Now I want to create a couple of more things for my email. This could be done directly in the email, but I prefer doing it this way for reusability in other flows. The first one is just creating a linked image that will be used as the footer. The following two are just Composing some links I will use in the email. I have found that when I link text in the email, that link occasionally gets dropped and this is more consistent for me.

First, I am not a fan of fancily formatted HTML emails with borders and images all over; I ignore them and assume many others do. I also tend to ignore emails that are not from a person. So, this email is intentionally plain, like a standard email you may write, and it also comes from my account. You can see where throughout the email, I added dynamic items from things previously created in the flow. I’ll show you the result shortly.

In our last step we’ll add this as a Prospect in RapidStart CRM so we can keep track of where this interested customer goes from here. You can easily create new fields in RapidStart CRM to capture any of the other data from the form. For example, for the email I included their “Highest” priority, but for our eventual conversation I would like to know the order of importance for “all” of their priorities.

So, let’s look at that email as received by a form submitter. First, we greeted them by name, and it came from my account. We have acknowledged their highest priority and added the blurb expanding on that. We have shown them some math and presented an “estimate”. Why estimate? We want to motivate them to set up a call, and an “estimate” sounds like it might have some possible wiggle room. We offer them an alternative option if this is not what they were thinking. Then we suggest a call with a link to our meeting booking calendar. Lastly, I acknowledge that this is an automated message, but I will see it. A subtle hint that they could have automation like this :).

Finally, here is what the record looks like in our RapidStart CRM.

Summary

As a brand-new business model, we will no doubt be making adjustments to the Landing Page, the Web Form, and the Flow as we see how it lands. If you would like to have something similar, but don’t want to build it yourself, contact Forceworks.

If you have any questions, feel free to post them in the RapidStart CRM Free Support Forum.

RapidStart CRM is built on Microsoft’s Dataverse, the core of the Power Platform. This means that RapidStart CRM is just as customizable as any of Microsoft’s first-party applications, like Dynamics 365 Sales, for example. We designed RapidStart CRM as a basic Sales and Service app “accelerator”. While it is a fully functioning app, it is the starting point for much more for many. Get or Test Drive RapidStart CRM on Microsoft’s AppSource here.

General Posts

There is no App for That

When it comes to Business Applications, Microsoft has a lot of options for you. If you are running a sophisticated Sales organization, they have an app for that.

read more

Why we Chose to Forgo Leads

Even as a simple-to-use CRM solution, there was often still confusion about how to use Leads and Contacts together. So we decided to approach it differently with RapidStart CRM.

read more

Tips and Tricks

Partner Stuff

Oh come on, Share This!

This is good stuff!!!