Code Your Customer Experience

By Carly Frederick in GET/technical Posted Nov 28, 2018

From the 10-person SaaS start-up to the global Digital Enterprise, one concept rings true: our customers drive who we are and what we do. Without them, our jobs likely wouldn’t exist. In fact, here at Cloud Elements, painted big and bold as you enter our office, is one of our core values: “Customers Come First.” These days, it seems all companies are shifting to a customer-centric strategy, looking to increase customer engagement with your company and its brand. Providing customers with the best possible digital experience means owning that journey from start to finish from within your application and not relying on third party systems to deliver that for you. But how does this apply to the developer who sits behind her screen all day churning out code, you ask? Well, this blog is for you, my friend.

Developers, who know the inner-workings of your product best, bring the customer experience to life. In the SaaS and Digital Enterprise world, the digital customer journey, whether it be through an intuitive user interface or powerful backend functionality, increases customer stickiness. Your users expect a seamless digital experience, the power to get where they want to go at the click of a button, and only you, the developer, can deliver that.

So what does this have to do with integrations? Glad you asked! Integrations are a key part to the digital customer journey. “I want all of my data to appear in one place.” “My applications need to be able to talk to each other.” “I don’t want to have to leave your site to get the information I need.” As an embeddable API integration solution, made for developers like you, Cloud Elements allows you to own your customer’s integration journey as well. Disappearing among the hundreds of apps in an app marketplace? Trying to establish relationships with every third-party provider to become available in that system? No longer a worry when you use Cloud Elements—connect to all your applications of choice, embedded right in your own application!

WARNING: stop reading if you’re not technical!!

Let’s take onboarding your customers as an example; there’s several ways to approach this, so we’ll examine two personas: the non-technical versus the tech-savvy.

For the non-technical customer:
You may follow the more “white-glove” approach—send the customer an email with a list of applications (or Elements, as we say) they can connect to. Then you manage the integration from there.


Here's what's happening: Demonstration of your company admin sending a personalized email invitation to your customer to connect to a specific set of applications. The user can then go to a unique website to authenticate to said applications, via Cloud Elements’ normalized authentication APIs. After this, their integration connections would be established and persisted by Cloud Elements, and your team can now connect to/from said applications via embedded APIs.

For the more tech-savvy:
They may want a more hands-on experience, where they head to your Integration Marketplace page, connect to their favorite applications, configure some data mapping, and set up some workflows.


Here's what's happening: This is an example of a customer-built UI (analogous to your application) in which your customer can configure the mappings between your system (left column) and the customer’s connected system (right column). The list of fields in the customer’s connected system is being populated through a Cloud Elements discovery API, in which we provide the list of fields in a selected object (e.g., Contacts) from that connected system to allow quick and efficient mapping.

One thing both of these have in common is the need for your customers to connect, or authenticate, to these applications. Let’s look at how easy it is to do this for your customers (sweet—example code time!).

Since Cloud Elements is 100% RESTful API-first, you can call a platform API to get the authentication configuration needed for each Element. For example, GET /elements/quickbooks/authentication-types returns a standard response of the types of authentication the Quickbooks Online Element supports, including OAuth 2. A subsequent call to GET /elements/quickbooks/authentication-types/oauth2/configuration returns the required authentication configuration. Understanding the OAuth 2 flow, you would embed the Cloud Elements standard OAuth API calls, given the required configuration, into your application and trigger the calls when a customer wants to connect to Quickbooks.

For Elements with a basic or custom authentication flow, you can look to the Element’s configuration metadata to see what fields are required for authentication, and build a form or dialogue user interface to ask for user input. Taking NetSuite ERP’s basic authentication for example, GET /elements/netsuiteerpv2/authentication-types/basic/configurations will return a list of configuration objects for which to prompt the user. An example of code to implement this could resemble:


What's happening here: The above code block is written in JavaScript and demonstrates an embedded call to Cloud Elements’ authentication API, returning the authentication configuration for NetSuite ERP’s basic authentication flow.

When built into your UI, it could look something like:

What's happening here: When the user clicks “Connect”, the developer has called the above code block to fetch the authentication configuration to NetSuite. After filtering the returned list to see which fields were required, the developer then built the shown configuration dialogue from the API response, which prompts the user on which information is needed to connect. On click of “Connect” in the dialogue, the developer calls to the Cloud Elements’ POST /instances call with the information from the form to establish the connection to NetSuite (what we call an Element Instance).

You’ve now enabled your customer’s to connect to their external applications of choice, all while staying within your application. +1 for owning the customer journey!


Cloud Elements offers endless solutions to enable you and your development team to own the customer journey, all while giving your application a competitive edge of scalable integrations—so get out there and start owning coding your customer experience! If you're ready to kickstart your integration strategy, contact us below.

Contact Us