Vantiq Adapters and Connectors

Vantiq adapters and connectors provide turnkey integration with 3rd party systems.

Architecture

Vantiq adapters and connectors divide the integration into two pieces. The 3rd party system connects to Vantiq through a connector that allows messages to be passed back and forth. As Vantiq is a real-time system, this integration is designed to allow for messages to be sent from one system to the other in real-time. In general, the connector may require a component within the 3rd party system itself as well as Vantiq artifacts such as Sources and Rules to handle the Vantiq side.

Vantiq adapters perform at a higher level to provide a specific mapping between data in the 3rd party system and the data within Vantiq. Typically, that includes defined data types to define and store the data in Vantiq as well as Rules and Procedures to perform any necessary data transformations. Adapters also provide an API to trigger specific actions in the 3rd party systems.

Vantiq adapters and connectors are designed as add-ons that can be imported and configured in any Vantiq system. Each adapter and connector is structured to match the import support in the Vantiq CLI. In addition, new adapters and connectors can be developed.

Usage

To integrate with a specific system, follow the steps:

  1. Install the appropriate Vantiq Adapter
  2. Install the dependent Vantiq Connector
  3. Configure the Vantiq connector with the 3rd party system
  4. For inbound data, configure a rule that listens for new data
  5. For control actions, call the appropriate action procedure

Install Vantiq Adapter

Vantiq Adapters expose the end user API that seamlessly integrates with the rule support in Vantiq. The list of adapters can be found under Help > Resources in the Vantiq portal. Find the Vantiq adapter that is most appropriate to your needs. For example, integration with Salesforce.com can be accomplished using the Vantiq Salesforce Adapter.

Install Vantiq Connector

Adapters generally depend on specific connectors that provide the underlying connectivity. The documentation for the adapter should point to the required connector. For example, the Vantiq Salesforce Adapter can be used with the Vantiq MuleSoft connector. As with the adapters, the list of connectors can also be found under Help > Resources in the Vantiq portal.

Configure Connector

The connector should be configured to provide the proper authentication between the specific 3rd party system. In addition, the configuration the integration may require setup on the 3rd party system side. For example, using MuleSoft, the connector provides connectivity into MuleSoft. To enable the integration, a flow must be created to wire up the systems appropriately.

Adapters generally require no configuration. At this point, the setup is complete and the adapter can be used.

Configure Rule

The configured data should now flow into Vantiq as that data is created or changed in the source system. Rules can be triggered based on those changes.

Visual Rules may be created that refer to the fields within that data. For example, a Visual Rule may have a condition column on the IsWon field within a Salesforce_Opportunity to listen whenever opportunities are won.

A VAIL rule may be created that listens for specific data type events on that data type, e.g.,

RULE WonOpportunitiyRule

WHEN UPDATE OCCURS ON Salesforce_Opportunity WHERE IsWon == true
...

Call Procedure

To trigger an action in the 3rd party system, the adapter provides procedures that can be called from a Visual Rule or directly in VAIL. All action procedures following the naming convention Control_<action>. The arguments required for each procedure are action specific.

Naming Conventions

To ensure that connectors and adapters do not have naming conflicts with other connectors and adapters, connectors and adapters will follow the following naming conventions:

Rules

Connector Rules and Topics

Connector rules must be named using the pattern:

Connector_<system>_<type>

where <system> is the unique name of the 3rd party system and <type> defines the specific behavior the rule is responsible for, e.g., Connector_MuleSoft_inbound. There are two default types, inbound and outbound that must be implemented.

The topics associated with these rules use the naming pattern:

/system/connector/<system>/<type>

Adapter Rules and Topics

Adapter rules must be named using the pattern:

Adapter_<object>_<type>

where <object> is the object in the payload and and <type> defines the specific behavior the rule is responsible for.

The topics associated with these rules use the naming pattern:

/system/adapter/<type>/<object>

For inbound data, <object> is the Vantiq data type name and <type> is generally inbound, e.g., Adapter_Salesforce_Case_inbound and /system/adapter/inbound/Salesforce_Case.

For control actions, there are no rules, but the topics still follow the naming convention. <object> is the action name and <type> is generally outbound, e.g., /system/adapter/outbound/Twitter_PostTweet.

Procedures

In general, procedures used to support connectors and adapters follow the following naming convention:

Connector_<system>_<name>
Adapter_<system>_<name>

where <system> is the unique name of the 3rd party system and <name> uniquely describes the action that the procedure is responsible for. These procedures are meant to be internal and not called directly by client VAIL code.

Adapter Control Procedures

All procedures that provide the interface for actions on a 3rd party system will follow the naming pattern:

Control_<system>_<name>

where <system> is the unique name of the 3rd party system and <name> uniquely describes the action that the procedure is responsible for, e.g., Control_Twitter_PostTweet.

These procedures are meant to be called from Visual rules or client VAIL code to trigger actions on 3rd party systems.

Sources

A connector is expected to have at most one source with the name <system>. Adapters are not expected to have any sources.

Types

In general, data that is integrated from 3rd party systems will be named using the pattern:

<system>_<name>

where <system> is the unique name of the 3rd party system and <name> is the unique name for the given data type, e.g., Salesforce_Account, Twitter_Tweet.

Internal Types

If data types are internally required for the operation of the connector or adapter, but not meant to be exposed, then they should be named using one of the patterns:

Connector_<system>_<name>
Adapter_<system>_<name>

depending on if the type is used by a connector or adapter.