Category Archives: Integrations

Using Decision Trees for Smart Scheduling with Calendly

One of the process issues we’ve faced as a company is the amount of time it takes to coordinate scheduling online demos for prospective new customers. If only there was a way to intelligently gather background information from each prospective customer, and then route the requests to the proper team… oh, wait! Zingtree can do that.

If you request a demo from our Contact Us page, you’ll launch a decision tree that determines what sort of customer you are, gathers relevant background information, and then opens a scheduler built with Calendly for the relevant team.

Calendly is really well designed, and about as easy to use as possible. You can set up individuals or teams, and Calendly accesses their Outlook or Google calendars so that the available times are shown for each person or group. Rather than having a ton of back-and-forth with every party involved, our customers can quickly see when we are available, and pick a time that works with their schedule.

Calendly also lets you pre-fill custom forms used in the scheduling process. So besides name and email, we create a backgrounder using Zingtree data entry fields and button click variables for each meeting request.  Our calendar entries include something like this:

name: Joe Customer
company: Acme Widgets
email: joe@acme.com
website: acme.com
Use_Case: Internal & External
Agents: up to 10
integrations: Zendesk
data_transfer: Send from Zingtree to another App
features: how to create trees
business: We manufacture widgets
how_help: save time in support

Not only do we make it convenient for the customer to provide this information to us, but also this helps us prepare properly for each meeting.

You can see how this scheduling decision tree is built here. Or…

 

 

Can you use this sort of system in your business? Let us know what you think! (And maybe even schedule a demo.)

Zendesk Agent Scripting App – Version 10

If you’re a Zendesk user in a Contact Center environment,  you’ll want to be using our Zendesk Agent Scripting app.  This makes it easy to guide, train and onboard agents and is a huge productivity booster for everyone.

The Agent Scripting app appears as a button in the right-hand panel:

Click Open Script, and you’ll see your decision tree in a pop-over like this:

If another agent picks up the ticket, they return to the last viewed node, and can see each step taken previously by opening the History:

 

Benefits of the Zendesk Agent Scripting App

  • Standardization: Show a guided path for each ticket, so that Agents follow the proper operating policies or troubleshooting procedures.
  • Pause and Resume: If a ticket is transferred, the supervisor or new agent is taken to the last place in the script, and can see the history of the previous steps taken.
  • Automatic Script Selection: The Agent Scripting App can choose a script based upon the Zendesk brand, Zendesk ticket tags, or the value of a custom field.
  • Agent Feedback: Agents can send feedback directly to the authors of the decision trees with a single button click. Feedback is delivered to each author’s email, and includes the tree ID and node number where the feedback was sent from.
  • Automatic Ticket Updating: Tags and custom fields in the ticket can be updated from actions in the script – either via buttons clicked in the script, or from data entry collected.

New Features in Version 10

If  you’re using a previous version of the Zendesk Agent Scripting app, you may want to upgrade to take advantages of these new benefits:

  • Pop-overs: Scripts now appear as pop-overs, rather than being constrained to the right-hand panel.
  • Ticket Updating: Your tickets can automatically update by navigating the script, or by entering data into Zingtree Data Entry Fields. For example, the start of your script could offer the agent a choice of a product, and the “product” field in your ticket will be automatically selected when the agent makes a choice.

Note: Don’t remove the current version of Agent Scripting until you are ready to make the switch. Versions 9 and earlier may not be updated going forward.

Demo Video

This two minute video shows you how Agents interact with the Agent Scripting App:

 

Getting Started

Here are the basic steps to get up and running:

  1. Build an interactive decision tree script with Zingtree (or use one of our demos to start).
  2. Install the Agent Scripting App (version 10) into Zendesk.
  3. Configure the Agent Scripting app within Zendesk.
  4. If you want to have your decision tree scripts update your  Zendesk tickets, you’ll need to add variables and/or tags to your Zingtree tree to match your Zendesk setup.
  5. If you want to enable automatic script selection, you’ll need to add tags to your trees in Zingtree and configure the Zendesk Agent Scripting app properly.

Installing the Agent Scripting App into Zendesk

Download and configure the Zendesk Agent Scripting App version 10 like so:

  1. Download the Agent Scripting app here.
  2. In Zendesk, click the Admin icon and go to Apps > Manage.

  3. Click Upload Private App.

  4. The Upload App page appears.

  5. Enter “Zingtree Agent Scripting” for the App Name.
  6. For App File, locate the file zingtree-agent-scripting-v10.zip you downloaded in step 1.
  7. Click Upload, then confirm if necessary.

Configuring the App

Once you’ve uploaded the app, click App Configuration to see the configuration screen:

Here’s what each item does:

Tree ID: This is the default tree that appears when agents click “Open Script”.  (You should always have a default tree.)

Hide Integration Setup Info: When you are setting up Agent Scripting for the first time, you may need some information about your Zendesk setup to take advantage of automatically updating ticket fields. An “Integration Setup Info” link appears by default when you first install the app, and ticking this option hides it.

Match Tree Tags to Zendesk Brand: If this option is checked, the subdomain of the selected brand will be matched to a Zingtree tree tag.  Any matching tree or trees will appear.  For example, if the brand subdomain is xyz.zendesk.com, any trees tagged as xyz (using the Zingtree Settings tool) will appear.

Match Tree Tags to Zendesk Ticket Tags: If checked, the values in the Zendesk ticket tags will be matched with your Zingtree tree tags (set via the Zingtree Settings tool) to show one or more matching scripts.

Match Tree Tags to values in a Custom field: If you want to use a custom field value to show matching scripts, enter the Zendesk custom field identifier here. The field name can be found using the Integration Setup Info link that first appears in the sidebar when you install the app.

Zingtree API key: Each organization in Zingtree has an API key, which is used to match scripts. If you’re using one of the tag matching options, this is required. Your API key can be found at zingtree.com under Help, API.

Enabling Automatic Script Selection

Automatic Script Selection works by matching tree tags you set in Zingtree to values in the Brand, Tags, or a custom field in a Zendesk ticket. For example, if a tree is tagged with “astrology”, and the ticket tags include “astrology”, then that tree appears. If several trees match, then they will all appear, and the agent can choose one.

To open a script based upon Brand:

  • Add tags to your trees for each brand you want to match. So if one of your brands is xyz.zendesk.com, use xyz as a tree tag in Zingtree for all the trees you want to show.
  • Make sure Match Tree Tags to Zendesk Brand is checked in the App Configuration.

To open a script based upon Zendesk ticket tags:

  • Add tags to your trees for each tag you want to match. So if one of your ticket tag possibilities is “billing”, use billing as a tree tag in Zingtree for all the trees you want to show.
  • Make sure Match Tree Tags to Zendesk Ticket Tags is checked in the App Configuration.

To open a script based upon a custom field:

  • Add tags to your trees for each possible custom field value you want to match. So if one of your custom field values is “billing”, use billing as a tree tag in Zingtree for all the trees you want to show.
  • Make sure the proper Zendesk field variable name is entered for  Match Tree Tags to values in a Custom Field is checked in the App Configuration.


Adding tags to a tree in Zingtree is done like this:

  1. Select a tree from My Trees.
  2. Go to the Settings tool.
  3. Enter or select a tag from the Tags field.

  4. Click Update Settings.

How to Configure to Update Ticket Fields

As agents navigate through your trees, their use of the decision tree scripts you create can automatically update any custom fields in that ticket. This can be done in two ways:

  • By clicking a button in a script
  • By entering data into Zingtree data entry fields.

The key is to use variable names in your Zingtree that match the ones used in Zendesk.

First of all, determine the names of the variables in Zendesk by clicking the Integration Setup Info link in the Agent Scripting app. You’ll see something like this:

You’ll see the label for the field as it appears in Zendesk’s ticket form, and the Zendesk variable next to it. In the above example, the Product custom field variable is custom_field_22899289. This is a drop-down selector, and the Zendesk values for the field options are astrology and insurance.

For the rest of this example, we’ll use custom_field_22899289 as the custom field variable.

To make a button selection update a custom field, you’ll set it up in your Zingtree as follows:

  1. Go to the Overview tool, and edit the node whose button selections will update the ticket.
  2. Click Edit Buttons (or Add Buttons if you don’t have any buttons defined). The button editor appears:

  3. Make sure Assign Button Click Variable is checked. This makes the other options appear.
  4. For the Button Click Variable, enter your custom field variable from Zendesk (custom_field_22899289 in the example).
  5. For each button option, enter the value of the variable under Score/Value. If this is a drop-down list in your Zendesk ticket, you’ll need to make sure the Score/Value entered matches one of the drop-down option values as shown in the Integration Setup Info.
  6. Click Save Changes when you’re done configuring buttons.

Bonus: Adding Tags via button clicks:

Button clicks can also add tags to a ticket. In the above example, clicking Something Else adds the tag other_tag to the ticket. Just include the tag name with two colons after the button text. So entering a button like Something Else::other_tag will add the tag other_tag to the ticket if this is clicked, but agents will only see Something Else as an option.

Using Zingtree Data Entry Fields to Update Tickets

Just like the above example, you can also use Zingtree for data entry, and have that data automatically transferred to your ticket. The key is to use the same variable name in Zingtree as you used in Zendesk. The Integration Setup Info link in the sidebar will give you those Zendesk variable names.

Example: If you have a text entry field in Zingtree you want to update into the Zendesk field custom_field_1234, you would set up the variable name as follows:

 

Try It with Example Data

You can use trees from the Zingtree Gallery to see how the Agent Scripting app works.

For a single tree, enter ’14’ as the Tree ID. This will show an Astrology website troubleshooter example.

For multiple trees, see how a tree can be selected by tag by doing the following:

  1. Enter 6a103737e44e4aa6e1e4b6b0bcb46f83 as the API key.
  2. Make sure Match Tree Tags to Zendesk Ticket Tags is checked.
  3. Try entering one or more of these tags into a ticket: “zingtree”, “astrology”, “pet_rock”.

Any questions? We’re always here to help

Decision Trees with Logic Nodes

In order to make decision trees that can help solve real-world problems, sometimes you need the ability to do more than just choose a path based upon a finite set of choices. For these reasons, we’ve introduced Logic Nodes into Zingtree.

In addition, we’ve found that many of our customer’s integrations are passing data variables into Zingtree, and there are situations where they would like to act on the value of those variables. Logic Nodes make this easy.

If you’re an existing Zingtree author, Logic Nodes replace Scoring Nodes from previous versions. Any tree that is using Scoring Nodes is automatically migrated to this new system, without losing any functionality or you having to do any updating of your trees.

Here’s How Logic Nodes Work

When you edit or create a Logic Node, you’ll see something like this:

Logic Nodes test the value of your Zingtree variables with a series of rules and jump to a node when a condition is met. The rules are applied in order, so once a rule condition is met, the node assigned to the rule opens next. You can also assign a default node to jump to in case no rules apply.

In the example above, if the variable fruit equals banana, then Zingtree will open node #8, the “Banana” node. If fruit is watermelon, then the default “Something Else” node opens.

About Variables

Variables can be numeric or text, and the comparisons work for either data type. You can bring variables into your trees in several ways:

Note: Your choice of variables is shown in a drop-down list. If Zingtree hasn’t encountered a variable yet in one of the above scenarios, then it won’t appear as an option.

Editing Rules

When editing your Logic Nodes, you can edit your rules as follows:

  • Reorder rules by dragging them up and down with this tool: Reorder Logic test
  • Delete a rule by clicking on this: Delete logic test
  • Select any existing variable from the Variables drop-down.
  • Select an operator (=, ≠, <, >, ≤, ≥ ).
  • Enter a value to perform the test upon.

You must also enter a default node to jump to if no conditions are met.

Zingtree Logic Nodes give your decision trees a bonus option for adding extra intelligence to your processes and troubleshooters. Do you have a cool application for Logic Nodes you’d like to share with us? Reach out and tell us your story!

This article was originally published on May 8, 2017.

Sending Slack Notifications from Decision Trees

slack+zingtree

Slack has become the go-to collaboration platform of choice for so many companies, and people are also using it to track events. We have also recently adopted Slack and wanted a way to send messages to Slack channels whenever something occurred in one of our own Zingtrees.

So, as part of our mission to make Zingtree interoperable with as many popular platforms as possible, we’ve added this capability to our most recent release.

How it Works

When an end-user visits a node in one of your decision trees, you can have that node trigger a custom Slack notification. Once you set up Slack for your organization, any node in any tree can send a message to Slack.

Notifications in Slack look like this:

Slack notification from Zingtree

Setup

First, you need to give your organization access to the Slack app:

  1. Go to Account > My Apps.
  2. Click Slack under Add Apps.Add Slack to Zingtree
  3. Slack will ask you to authorize Zingtree access. Select the Slack channel you want to receive notifications (“post to”), then click Authorize.Authorizing Slack
  4. You will be returned to Zingtree, and Slack will appear in your list of apps.Slack installed in Zingtree

Now you can configure any node in any tree to send a custom Slack notification:

  1. Pick a tree, and go to the Overview tool.
  2. Pick a node, and click the Edit button.
  3. Locate the Send Message To option, and select Slack.Slack messaging added to a Zingtree Node.
  4. Enter a message that will be sent to your Slack channel.  You can also include any form variables (i.e. #name#).

Now, Preview your tree, and visit the node where you just added a Slack message. The custom message will appear in Slack, along with a link to the session transcript:

Slack notification

 


 

Any questions about this, or any of our other integrations? Please contact us anytime.

This article was originally published on April 20, 2016.

Integrating a Decision Tree Transcript into CRM (and Other Apps)

doodle_banners

Beyond troubleshooting and support, Zingtree makes a handy interactive front-end for getting people to the right page on your website. We consistently see our customers building trees for sales prospecting, medical appointments, loan qualification, hiring and other environments where a little bit of automated filtering goes a long way. Plus, Zingtrees are a great means for information gathering, too!

We also get requests for integrating Zingtree within various back-end platforms – most notably, CRM. Often, when a customer’s data gets imported into another system, you’ll want the Q&A transcript of their Zingtree session attached.

We’ve created a Simple Sales Funnel demo tree and a basic back-end script in the Zingtree Gallery so you can see a working example.

Here’s how to pass a Zingtree Q&A transcript along to ANY system:

1. From your tree, create a link node to your contact form (i.e. contact_form.php), with a URL like this:

contact_form.php?session_id=#session#

2. In contact_form.php, add this JavaScript right above the ending </body> tag:

<script
id="zingtree_field_id"
value="session_data"
src="//zingtree.com/api/add-session-data-to-form.js">
</script>

3. In the form itself, add a hidden field with an id of “session_data”. The name can be whatever you like. Example:

<input id="session_data" name="zingtree_stuff" type="hidden" value="" />

That’s it!

Under the hood: When the form is loaded, the add-session-data-to-form.js script reads the session_id parameter, then loads the session transcript into the hidden field with the id=”session_data”.


BONUS:

Rather than having a field that must have an id of “session_data”, you can also specify the ID of the field that you want to insert Zingtree data into. This is especially helpful for Salesforce or other CRM apps that generate forms for you.

For example, if you added a multi-line text field to your CRM system form with an ID of “my_data_field”, you could use this piece of code instead:

<script
id="zingtree_field_id"
value="my_data_field"
src="//zingtree.com/api/add-session-data-to-form.js">
</script>

 

This article was originally published October 5, 2016.

Configuring Okta Single Sign-on

security-blog

If you’re looking for a way to get started with securing your trees via Single Sign-on, you’ll first need to have an Identity Provider to manage your logins. Okta is a great service – it’s easy to set up, and very popular.  This article will show you how to get Okta and Zingtree working together.

Set Up Overview

Configuring SSO requires Okta and Zingtree to share information with each other:

  1. Okta needs information about Zingtree.
  2. Zingtree needs information about your Okta.

Once you have Zingtree and Okta successfully working together, you can mark any of your trees as “SSO restricted” via the Zingtree Settings tool to require a login to get access.

For the setup, we recommend keeping two browser tabs open – ope in Okta, and one in Zingtree.

Configuring Okta

To start, in the Zingtree top menu, go to Account, Single-Sign-on. You’ll see the parameters (specific to your organization) to share with Okta:

Let’s use this information to set up the Okta side:

  1. If you haven’t already created a free Okta account, do it now.
  2. Go to the Okta Dashboard.
  3. Click Add Applications under Shortcuts.
  4. Click Create New App.
  5. Choose SAML 2.0 as the sign-on method, and click Create.
  6. In the General Settings, give your application a name (like “Zingtree”), and click Next.
  7. Under SAML Settings, configure it as shown below.  For the Single Sign-on URL, use Zingtree’s Login URL. For the Audience URI, use Zingtree’s Entity ID.

  8. Click Next to finish the SAML setup.

Configuring Zingtree

First, let’s get some information from Okta:

  1. In Okta, click Applications from the top menu, and go to Applications.
  2. Click the new Zingtree application we created.
  3. Click Sign on, then View Setup Instructions. Keep this page open in a browser tab.
  4. Now go back to the Zingtree tab, and click Edit Identity Provider Data.
  5. For the Zingtree Entity ID, use the Okta Identity Provider Issuer.
  6. For the Zingtree Login URL, use the Okta Identity Provider Single Sign-On URL.
  7. Copy the Okta certificate into the Zingtree certificate field.
  8. Make sure Enable access restrictions on specified trees is checked in Zingtree.
  9. Click Save Identity Provider Settings.

Testing Your SSO Setup

Once you’ve set up your Identity Provider and Zingtree for SSO, you can test from Zingtree as follows:

  1. In Zingtree, go to Account, Single Sign-on.
  2. Click the orange Test Setup button at the lower right of the page.

From here. you can test logging into Okta from Zingtree.  If you’re already logged in, the test will just return your email or other identifier from Okta.  If you’re not yet logged in, the Okta’s login screen will appear, and then you will be returned to the Zingtree SSO test page after logging in.

Enabling SSO on Your Trees

Once SSO is working properly from your test, you can restrict access to any tree as follows:

  1. Go to My Trees, and select the tree that you want to require SSO login.
  2. Click the Settings tool.
  3. Check Require Single Sign-on (SSO) Login to Access.
  4. Click Update Settings.

This process has been tested, but if you’re having trouble getting Okta and Zingtree working together, please let us know!

Zendesk Decision Tree Support App: Version 4

zendesk_zingtree-BLOG@2x

Travis A., who is implementing Zingtree for a video technology company, was keen on using Zingtree to try to reduce his team’s support ticket load. He also needed to import a synopsis of the Zingtree session data into his Zendesk tickets so his tech support people could get some time-saving background information.

Travis wanted to emphasize the condensed Q&A part of the session. Done!

Here’s the new look of the Zendesk Decision Tree Support app:

Here’s what’s new in the Zendesk Support App, version 4:

  • The Q&A view is now the default.
  • Any “back” or “restart” button clicks no longer show in Q&A view.
  • The answers clicked are highlighted, so it’s easy for a support person to see where the customer went at a glance.

You can download the latest Zingtree Decision Tree Support app for Zendesk here.

Need help installing the app? Instructions are here.

Travis' photo
This is Travis.

Thank you, Travis, for the awesome suggestions!

Single Sign-On for Zingtree Decision Trees

security-blog

We’ve had several requests to incorporate Single Sign-on (SSO) into Zingtree, as a means of restricting access to trees.  Many customers have sensitive corporate processes or procedures encapsulated in their trees, and ensuring these trees are accessible only to certain employees can be invaluable.

Single Sign-on is a service provided by many vendors, including Okta, Microsoft (Active Directory / Azure), Google (G-Suite), Salesforce and more.  These services are known as Identity Providers.  A single log-in through an Identity Provider gives a user secure, authenticated access to applications provided by Service Providers like Zingtree.

Once you log in through your Identity Provider, you don’t need to re-enter your login credentials. SSO is a very convenient way to secure access to your applications, while not burdening end-users with extra hurdles.

Zingtree supports any service that is SAML 2.0 compliant, which is a common standard.

Set Up Overview

Configuring SSO requires your Identity Provider and Zingtree to share information with each other:

  1. Your Identity Provider needs information about Zingtree.
  2. Zingtree needs information about your Identity Provider.

SSO just needs to be set up once for your organization. Once you have Zingtree and your Identity Provider successfully working together, you can mark any of your trees as “SSO restricted” via the Settings tool to require a login to get access.

Configuring Zingtree for SSO

To start, in the Zingtree top menu, go to Account, Single-Sign-on. You’ll see the parameters (specific to your organization) to share with your Identity Provider:

Configure your Identity Provider with these parameters.

Next, click the blue button to Enter Identity Provider Data into Zingtree. The following screen appears:

Copy the rest of these settings from your Identity Provider.

If you’re ready to test, make sure Enable access restrictions on specified trees is checked.

Click Save Identity Provider Settings when finished.

Testing Your SSO Setup

Once you’ve set up your Identity Provider and Zingtree for SSO, you can test from Zingtree as follows:

  1. In Zingtree, go to Account, Single Sign-on.
  2. Click the orange Test Setup button at the lower right of the page.

From here. you can test logging into your Identity Provider from Zingtree.  If you’re already logged in, the test will just return your email or other identifier from your Identity Provider.  If you’re not yet logged in, the Identity Provider’s login screen will appear, and then you will be returned to the Zingtree SSO test page after logging in.

Enabling SSO on Your Trees

Once SSO is working properly from your test, you can restrict access to any tree as follows:

  1. Go to My Trees, and select the tree that you want to require SSO login.
  2. Click the Settings tool.
  3. Check Require Single Sign-on (SSO) Login to Access.
  4. Click Update Settings.

Release Notes

SSO has been tested with a variety of Identity Providers.  If you’re having trouble configuring with a specific service, please let us know!

Embeddable Decision Trees for WordPress

There’s no getting around it – we love WordPress! As a powerful piece of software that enables people around the world to spread and share ideas, build amazing websites and more, we understand the need to be as integrative with this ever-popular tool.

Zingtree’s robust toolkit allows WordPress users to directly embed interactive decision trees into any web page needed, making it easy for customers and end-users to navigate through any process on your site in a simple question-and-answer flow.

Many of our amazing customers are already taking advantage of this plugin, by hosting powerful, customized decision trees directly on their respective websites! See if you could survive in the wild with this interactive journey built by Live Out There, then check out a robust and helpful troubleshooter decision tree from Screen Time.

Here’s how to get started with your own WordPress-hosted decision tree:

1. Download the plugin and install it into WordPress.

2. Use your Zingtree decision tree’s specific short code (which will appear like this) in your post:

[ zingtree id=”851580502″ ]

Hint: To locate your short code, login to Zingtree and go to My Trees. The ID number to the left of the decision tree title is your code.

Installation Video

Some more examples: 

To customize with a persistent button that will immediately take the user to whichever node you’d like while displayed in “panels” style, enter a short code like this:

[ zingtree id=”148196706″ style=”panels” persist_names=”Restart|Submit Ticket” persist_node_ids=”1|5″ ]

To hide the name of the decision tree, as well as the “back” button, enter a short code like this:

[ zingtree id=”148196706″ hide_title=”yes” hide_back_button=”yes” ]

Get the WordPress Plugin!

Don’t want to embed into WordPress? Zingtree can host your decision trees for you! Learn more here or contact us today.

This article was originally published May 2015.

How to Use Existing Login Credentials to Restrict Access to Decision Trees

security-blog

Some of our customers have asked for an extra level of security for their trees, such that only people authenticated via a corporate intranet can access it. This article shows how it’s done, for ANY login system on ANY intranet.

Universally restricting access is accomplished by having an internal server access the tree via a server-side include, rather than via a user’s browser via embedded code in the page. This means that all accesses of the tree come from a single corporate IP address or range. Zingtree has an IP filtering option for any tree, so it’s easy to restrict access and use whatever authentication processes are already in place on the corporate intranet.

The method described here can work with organizations using SSO (Single Sign On), or any other login system.

Here are the basics:

  1. Restrict access to your tree to just the IP address of your server(s). This is done via Zingtree’s Settings tool.
  2. Create a web page for the tree to display on your internal server. This page will include the necessary JS and CSS files to show the tree. Load your tree using a server-side call, instead of embedding it into an iFrame or linking to a URL hosted at Zingtree.com.

Examples

Here’s PHP source code for a simple server-side include.

See how this page appears.

Technical Details

The example above is written using PHP, but any server-side scripting language can be used.  Our demo is a template around which a URL for a tree can be loaded. This template contains all the CSS and JS files needed to display a functioning Zingtree decision tree.

Zingtree is built on top of Bootstrap 3, so the basic Bootstrap files are loaded.  There are a few custom controls as well included in the template.

You can swap out the PHP with Python, Ruby, Perl, or any other scripting language you choose.
Have any questions or comments about making your trees more secure? Talk to us!