Category Archives: Integrations

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!

Zapier Decision Tree Integrations with Zingtree

zingtree zapier integration

Our Zapier app makes it easy to send data collected during each Zingtree session to more than 500+ applications supported by Zapier. In case you haven’t heard of it, Zapier is a tool that simplifies data exchange between various web applications. We’re big fans.

Here are some cool things you can do with Zingtree and Zapier:

  • Send data collected in a Zingtree session to Salesforce, Zoho, Highrise, or any other CRM.
  • Add an email address entered in a tree into Mailchimp.
  • Send  yourself an email or SMS message when a customer reaches a critical node in a tree.
  • Save new customer information in a Google Sheets row.
  • Create Trello cards from trees, and include customer notes and session data.
  • And tons more!

When using Zapier, you create “Zaps.” A Zap has a “trigger,” which is the source of the data, and an “action,” which is where the data gets sent. Most of our customers want to send data from Zingtree to another app, so we’ll demonstrate how this is done here.

Before starting, you may want to examine a demo tree from our Gallery that gathers data and sends it to Zapier, or copy it to your account.

How to Set up Zapier for Zingtree

The Zingtree Zapier app is currently invite-only. But if you’re reading this article, you’re invited!

  1. Create a free Zapier account at Zapier.com.
  2. Go here to accept an invitation to use the Zingtree app. The invitation appears:

    Accept the invite.
  3. You’ll be prompted to make a new Zap:
    Click Make a new Zap.
  4. You’ll be asked to choose a Trigger App, which is the source of the data exchange.
    Search for Zingtree, and select Zingtree (Beta).
  5. You’ll be asked to choose a single trigger.
    Click Save + Continue.
  6. Next, you’ll need to connect your Zingtree account, and a tree to Zapier.
    Click Connect a New Account. 
  7. You’ll be asked for your Zingtree API Key, which you can find here at the bottom of this page. Also enter the Tree ID that will be sending data to Zapier.
    Click Continue when finished.
  8. Change the name of the account, then click Test.

    You should see “success.” Click Save + Continue.
  9. Next, Zapier will attempt to retrieve any variables or sample data from your tree. If this is a new tree, you may want to run through it once and gather some data.
    Click Fetch & Continue.
  10. You’ll see some of the stock data that Zingtree always provides, as well as any custom data for your tree. Again, if you don’t see all the data you expect, do a test run through your tree, and enter some data at least once. This will make the rest of the process easier.
    Click Continue.

Set up the Action App – Email Example

So now you’re done with the Zingtree part. Congratulations! Next, you need to set up an Action App, which will receive data from Zingtree. Let’s set up email delivery as an action, as follows:

  1. Search for email, and choose Email by Zapier as an action app.
    Select Email by Zapier.
  2. This app has just one action.
    Click Save + Continue.
  3. Fill in details for the outbound email. You can insert fields from Zingtree in the body of the email as well.Click Continue when the email is set up correctly.
  4. You’ll see  a preview of what to expect.
    Click Create & Continue to save the action and send a test email.
  5. You should see another “success” screen.
    Click Finish when the email appears as you like.
  6. Name your Zap Zingtree to Email, and turn it on!

Your Zapier Zap is all set.

Making Zingtree Send Data

The final step is to tell Zingtree when to send all the data collected in a session to Zapier. This can be triggered from one or more nodes, when they are seen by the end-user of your tree.

  1. From Overview, Edit Node, edit the node that you want to trigger sending data to Zapier.
  2. Go to Send Message to, and pick Zapier: Zingtree to Email. This is the new Zap you created.
  3. Click Save.
  4. Now try a test from Zingtree. Using Preview or the Publish tool, navigate your tree, and when you reach the node that triggers the send, you should see something in your inbox. IMPORTANT: Make sure to use https in your published Zingtree URL when using Zapier.

Once you get your first Zap done, it becomes easy and addictive to hook Zingtree to the other applications that your business depends upon. So keep going!

Have any questions? Contact us anytime!

How to Offer Always-On, Self-Service Customer Support

self-service customer support

Self-service is a win-win for rapidly-growing (and exceedingly busy) businesses, pleasing the majority of customers while at the same time providing an efficient, always-available support medium for customer service teams. Empowering customers to solve problems and answer their own questions means less work for support teams, and overall more satisfied consumers!

Don’t believe us? Here are some statistics about customer support self-service from our friends at Desk.com:

  • 72% of people think that self-service support is a fast and easy way to handle support issues
  • 40% of customers place a call after already looking for support or answers themselves
  • 91% of customers would regularly utilize an online, self-service support center if it was tailored to their needs

Your business doesn’t have to get swept up by the new wave of customer service; get your support team up-and-running with self-service support options with these 3 steps.

1. Bulk Up Your Knowledge Base & FAQ

It all starts with your FAQ and knowledge base of information — 56% of customers cite a lack of information as their reason for abandoning a website, so it’s critical to make sure that the content in your support center is totally user-relevant, helpful and currently up-to-date. Revisit and revamp knowledge base articles, FAQ answers and other support-related content on your site on a regular basis (quarterly or even monthly), to provide your customers with the most important, accessible information possible; both your customers and your team members will certainly thank you for your proactive customer care!

2. Implement Interactive Troubleshooters

It’s pretty amazing that in today’s world, you can easily provide 24/7 access to support without doling out for any extra staff members. Creating and integrating interactive, customer support troubleshooters makes it easy to help your customers even when no one is there for a one-on-one. Additionally, Zingtree decision trees make it possible to quickly gather customer background information in case a support ticket is submitted, so you have all of the key information you need in one place.

Pairing your existing knowledge base with interactive decision trees is the best way to cover every base where support is concerned, and simplifies the process of finding real solutions. In fact, organizations that use these decision tree troubleshooters have spent an average of 20% less on support costs overall.

3. Reach Out, and Be Easy to Reach Out To

When a customer is having a major issue, or really just prefers a good old fashioned human interaction, it’s always a good idea to provide a way to get in contact with a real live person. Make it as simple as possible to reach out to your support staff, sales team, or anyone else who could help out – having this kind of clear pathway laid out on your website can mean the difference between a super happy customer, and one that is completely stressed out by your online presence.

Better yet is the idea of reaching out to your customers before they have the chance to have a problematic situation occur; this makes people feel at ease whenever something does inevitably come up, and sets a positive tone for any future communications.


Zingtree makes it easy to build customized, informative decision trees to satisfy your customers and your business. Contact us to learn more or get started today!

Integrating Zingtree with Freshdesk

feshdesk_zingtree

Freshdesk is one of our most popular integrations, so we’ve made sure it’s easy to import Zingtree session transcripts into a Freshdesk ticket. With the integration in place, support staff can see all of the steps a customer went through in a decision tree before needing to ask for help – it’s a huge time-saver for agents!

When the integration is set up, agents will see a Zingtree transcript with each ticket, like this:

Requirements:

You will need the Estate or Forest plan from Freshdesk to accomplish this integration.

Overview:

You’ll first need Freshdesk Admin privileges to complete the process. This method will create a new field called Zingtree Session Datait gets hidden from the customer, but it appears for the agent answering the ticket. It includes the entire Q&A transcript of the user’s Zingtree session prior to opening a new ticket in Freshdesk.

Here’s how to set up the Freshdesk side:

  1. In Freshdesk, go to your Admin panel, and select Ticket Fields.
  2. Create a new “Multi Line Text”  ticket field named Zingtree Session Data. (This field must be set up as “display to customer” and “customer can edit”, but will be hidden from the end-user once you implement step #7 below. Trust us!) The properties will look like this:
  3. Click Done.
  4. Click Save to add the field.
  5. Next go to Admin, Portals, and click  Customize Portal next to the portal that will receive Zingtree data.
  6. Go to Layout and Pages, Portal Pages.
  7. Click New Ticket, then add this code to the new ticket edit area:
    <script src="//zingtree.com/api/freshdesk-new-ticket.js"></script>

    This is what it looks like (new code outlined in red):

  8. Click Save and Publish.

On the Zingtree side:

You see to make Link Nodes that go to your Freshdesk New Ticket form, and add ?session_id=#session# to the end of the URL. Example:

If this is the link to your ticket form:
http://support.mycompany.com/support/tickets/new

Use this URL within a Zingtree Link Node to go to the ticket form, and have the Zingtree session transcript transferred:

http://support.mycompany.com/support/tickets/new?session_id=#session#

We’ve set up a sample Gallery tree (“Freshdesk Integration example”) for you to examine here. You can copy this tree, and then change the URL link to point to your own Freshdesk domain.

Follow these steps and in 15 minutes or less you’ll have a powerful integration between Freshdesk and your Zingtrees.

Any questions? Reach out to us anytime.

Live Chat Integration: Intercom and Zingtree

z-integrations-blog

Live chat is an incredibly useful way to connect to our customers, both for offering support and for getting insights into new product ideas we may never have thought of ourselves. We are happily using Intercom, which allows us to track chat and email conversations with each customer.

For technical inquiries, we use Zingtree Data Entry forms to get the tree ID, node and URL of any problem reports. To save our customers some typing, and make it faster for us to answer questions, we’ve built our own Contact page using Zingtree. For technical and sales inquiries, the decision tree leads to an end point that opens Intercom chat, with information about the problem already pre-populated.

Once you submit a technical question, here’s what appears in Intercom:

Intercom chat with Zingtree

Demos:

Requirements:

  • Your tree must be embedded on your site.
  • You need to have the Intercom chat client in place on the page that contains your tree.

How to open an Intercom chat session, and include the Zingtree transcript and data entry:

  1. Go to Overview.
  2. Edit the node you want to trigger the chat, and  set the Parent Action to Intercom: New: #session#.When a customer lands on this node, this Parent Action is triggered.
  3. On the hosting page, include this script before the </body> tag:
    <script src="//zingtree.com/api/chat/intercom.js"></script>

It’s that easy!

Source Code:

From the Zingtree Gallery, you can see two examples:

Managing a “Forest” of Decision Trees Using Tagging

As Zingtree is getting more and more larger companies as clients, we’ve received a lot of requests for being able to better manage a large library of trees. Some customers are planning on creating hundreds or even thousands of trees.  Our latest update makes it even easier to locate and organize large decision tree “forests.”

First Step: Tag Your Trees!

If you haven’t done so already, you should tag your trees. A tag is like a category – any tree can have multiple tags. This is the first step to being better organized.

To tag a tree:

  1. Start at My Trees, and select a tree.
  2. Go to the Settings tool.
  3. Enter a tag, or pick from a list of existing tags:
  4. Click Update Settings to save.

Locating Trees by Tag

Once you’ve tagged your trees, Zingtree has a few different ways to make it easy to stay organized:

  • For Authors: Filter your list of trees by tag in the My Trees tool.
  • For Authors: Use Tree Search to enter a list of tags to find trees that have any or all of the desired tags.
  • For Agents or End-Users: Authors can use new Macros to present a list of trees to an end-user that contain any or all tags in a list.

Authors: Filter by Tag in the My Trees Tool

When you use the My Trees tool, you’ll see an option at the top right for Has Tag. This contains a list of all the decision tree tags in use for your organization:

Select a tag, and you’ll see all the trees that have that tag.

Authors: Use Tree Search

For more powerful searching using tags, use the Search button in My TreesYou have four different search options. These two apply to tag matching:

  • Match Tree Tags (any): Enter a comma separated list of tags. The results return a list of trees that include any of the tags in the list.
  • Match Tree Tags (all):  Enter a comma separated list of tags. The results return a list of trees that include all of the tags in the list.

Using Macros to Present Lists of Trees by Tag

Inside the content area of any tree, you can insert a special macro to show all the trees in your organization that match any or all tags in a list. You can examine the Tree Tag Demo in the Zingtree Gallery to see how this is done.

The two macros you can insert into the content area are:

  • ##treetaglist-any: tags##
  • ##treetaglist-all: tags##

In the examples above, replace tags with a comma separated list of tags. treetaglist-any will return a list of trees that match any of the tags in the list.  treetaglist-all returns only those trees that contain all the tags in the list.

Examples:

#treetaglist-any: demo,gallery## – matches trees that are tagged with either demo or gallery.

#treetaglist-all: demo,gallery## – matches trees that are tagged with both demo and gallery.

Shortcut: When editing a node, you can insert these macros from the Templates editing tool in the Content editor:

Bonus: Dynamic Lists

When publishing a tree, if you add a tags= parameter to the tree URL, you can dynamically import the list of tags used by the tree macros.  Be sure to separate the tags with | characters. Example:

http://zingtree.com/host.php?style=panels&tree_id=287688184&tags=demo|gallery

Inside the tree, this macro will list trees that have tags that match ALL the tags in the passed-in tags= parameter:

##treetaglist-all:##

This macro will list  trees that have tags that match ANY tags in the passed-in tags= parameter:

##treetaglist-any:##

Node #6 from the Tree Tag Demo in the Zingtree Gallery shows how this is done. Try it!

Integrations: Dynamic Tree Lists by Passing Tags

Our customers Corey and John asked for a way to send a list of tags from their Help Desk system, and open a specific tree or show a list of matching trees. Here’s how to do it.

  1. Go to My Trees, and click Search.
  2. Use one of the tree tag searches.
  3. In the search results, click the Integration Link Template button at the bottom of the page.  This will show you a URL to use as the basis for linking from your Help Desk/CRM system to the Zingtree search.  You can add style parameters to this link from the Advanced Hosting Options page as well to ensure your trees appear with the desired look and feel.

Example:

This link is derived from a search in the Zingtree Gallery. The search, style and transition parameters are changed from the template example to customize the result.

http://zingtree.com/host-trees.php?jump=1&key=6a103737e44e4aa6e1e4b6b0bcb46f83&type=treetag-all&search=demo,gallery&style=panels&transition=fade

Credits

Thanks to Corey, John, Elise, Trey and a few others for sharing their tree management needs.  If you have a suggestion, comment, or question, please reach out and talk to us!