How to automate lead routing

Get new connectors built in record time with Connector Press

Ali Russell Tray.io author profile image
By Ali Russell

Greetings Citizen Automators! We're pleased to take this opportunity to introduce you to one of the Tray Platform's most exciting new features: Connector Press. Connector Press is the key to extremely fast development times for new connector integrations for all the enterprise apps you need. We'll also be briefly walking through the way this feature, and the platform's serverless architecture in general, lets us quickly generate net-new connectors and update existing service connectors and endpoints. (In fact, Tray.io’s engineering team rapidly builds new connectors and endpoints at scale using these important features every week.)

As mentioned, we built these features for the primary purpose of being able to serve up the connectors and endpoints you need in your everyday work. But this blog also takes a deep dive into exactly how and why we took the approach we did, and how focusing on serverless lets us rapidly create new and updated connectors for you.

Why we built Connector Press

At Tray.io, our mission is to become the central nervous system of the automated enterprise, since we understand that each cloud or on-prem application with which we can connect provides immense value to our customers.

To achieve our goal, we had to find a way to deeply connect into various services and to develop new connectors and endpoints at scale. We knew that we had to use technology to scale our engineering capacity while also adding the flexibility that rapidly-growing and enterprise companies need without requiring an overly restrictive spec - this step is important because we understand that no two tech stacks are the same. We wanted to ensure our platform could provide not only the power to scale with your needs, but also the flexibility to work with the services you use every day.

When we started building the Tray Platform, we knew that creating and scaling connectors was going to be an essential part of the business. We knew that there are thousands of APIs out there and that each of them is very different. So we set about creating a framework that would provide a standardized way of mapping data between these different APIs.

How we built Connector Press to help you get more done, faster

What we built was a NodeJS-based, serverless SDK that let our connector engineers focus on the core logic of dealing with an API, rather than worrying about things like scalability. NodeJS is a highly efficient form of Javascript, whose lightweight nature makes it a good fit to flow data across multiple services in real time. Serverless computing, of course, puts server management in the hands of the cloud provider (instead of locking resource allocation to on-premise servers), which enables its users to scale data usage much more responsively and efficiently. The entire Tray Platform is built on serverless architecture, and we specifically took this approach to Connector Press to ensure we could meet the constantly-changing needs of enterprise businesses.

While this framework has been a critical part of us growing our library to hundreds of connectors, as we scaled the team and saw an increased demand for different services, we noticed there were a few challenges we felt still needed to be solved:

  1. The part of a Tray Platform connector that a user interacts with is described using JSON schema - a particular specification for data structure, which does offer some innate advantages. While using JSON schema makes it possible to build complex interfaces in a standardised way, JSON schema itself is verbose and can be very tedious to write. It is by far the most time-consuming part of building a connector.
  2. Nearly all the connectors that we build require authentications to be able to test them - authentications, of course, being the sign-on credentials for every service you use. For authentication types like OAuth, which require the user to go through a multi-legged authorisation flow, there is no easy way to create an authentication without deploying the connector to the Tray Platform first. This results in a very disjointed process.
  3. Developing connectors locally required a full development environment to be set up, with relevant dependencies/libraries installed and special scripts used to deploy the connectors to the Tray Platform. It was painful to keep this environment up to date, onboard new engineers, and maintain and distribute authentication details used for deployments.

Knowing that we had to solve these three challenges, we went to work. The result of our efforts was Connector Press.

What is Connector Press?

Fundamentally, Connector Press is a low-code user interface that sits on top of our powerful connector framework. It lets us abstract away common tasks that are usually required when coding connectors by hand - especially when dealing with things like JSON schema. Since Connector Press also lives within the Tray Platform itself, it makes it much easier to test APIs with real authentications and real data. This lets our team quickly deploy changes and streamline the entire process.

The results have been impressive. For simple REST APIs, Connector Press has let our team build and test simple endpoints in extremely short timeframes. Obviously, more-complex builds and updates require more development time, but it has become an immensely valuable enhancement to our engineering capacity. It also helps us provide the flexibility to responsively fill in any gaps among our customers' tech stacks. We're always grateful to see our customers making full use of our platform's features:

BLOG - 06-11-19 - Connector Press 00

Our customers continue to benefit from our rapid connector development, and we will have more exciting updates on Connector Press in the near future. We'll continue to keep you posted as we add new and innovative features (as well as new product launches like Tray Embedded!) to the Tray Platform every week, such as Rollback History and our latest feature enhancement: Error Handling. As always, thank you for using Tray.io.