How to... set Workflow values in the URL and link your systems together

A really powerful feature of Malcolm! Workflows is the ability to automatically populate one or more of the values within a Workflow via the URL that links to it.

By using this feature you can easily identify the customer, the transaction (or anything else eg an incident or a location) that a Workflow completion relates to without the customer having to supply those details themselves.  

This creates a much better experience for your customer (it can be annoying and tedious for them to have to supply lots of information) plus it avoids the potential for mistakes in the customer entering that data themselves.

It also gives you a quick and cost effective way to extend your "customer logged in" functionality.

When you process your Workflow completion (whether that is via an email answer, an export, an integration or a webhook) you'll have the auto populated data alongside the customer populated data so you can easily cross reference and link your different systems up.

How does it work?

Let's say you are sending out a mailing to your email list and you want a recipient to be taken in one click to a form where they make a choice, enter some text, hit submit and you know who they are.

In this example we can use email address as the unique identifier. In the Workflow builder you'd set up the values you wish to collect:

To enable the Email address value to be auto populated via URL click on it, scroll down and in general settings enable the "Allow a value to be set in URL query" option.  

In this example I've also enabled "Make this question read-only" which means the user can't change their email address on the Workflow.  I could also enable "Make the question hidden" which would mean the customers doesn't see the email address value on the Workflow but personally in this scenario I think it is nice to echo that info back to them.  

You can also choose the variable used in the URL to reference the email address field, in this case "email-address".

So a URL of https://tom-test-15.malcolm.app/workflows/competition-entry?email-address=tom.jordan@malcolm.app will link to a Workflow with the email address already populated. The customer just has to make their choice and supply some text and they are done!

If you mailing list software you would use a merge field to reference the sent to email address so every recipient has a unique link eg https://tom-test-15.malcolm.app/workflows/competition-entry?email-address=[merged-value]

Watch more in your tutorial video below:

Watch our Setting Workflow values in the URL tutorial

Making things secure

The above method isn't perfect, because a user could change the value in the URL to a different value from the one you set in your mail merge.  Depending on the type of data you are setting in the URL you may or may not be concerned about this. In some scenarios you may want to allow customers to change the auto populated data anyhow.   But a way to prevent the values being human readable in the URL is to encrypt them which we also support and you can read more about here.

Joining things up (fast and quick to extend "logged in" functionality)

The ability to set one or more values via the URL means it's really fast and easy to extend your "logged in" customer functionality.   For example if you have a logged in state on your main website you can ask your developers to link to Malcolm! Workflows using encrypted unique identifiers for each customer or transaction - this approach means you can rapidly build out a "My Account" area literally in minutes rather than months.    When you process that data the unique identifier lets you easily link it back to the data held in other systems for example your CRM or main customer database.

Read more here.   We hope you love this functionality, if you've any questions or need a hand don't hesitate to get in touch! And if you are not yet a Malcolm! customer you can sign up for a free trial here.