To refresh our memories, an element is the smallest unit of a flow. Elements are the building blocks we combine, to build our apps.
The Service element lets us connect our apps to other applications, service providers, or databases. We can also use services to extend the functionalities of a flow (say, to delay the flow, or schedule a task) and for end-user authentication. Boomi Flow service integrations are available for Salesforce, Box, Twilio, Gmail, Microsoft Exchange, SharePoint, Microsoft Azure, and Timer, among other providers. We can also work with AtomSphere in Flow, which lets us use a variety of service connectors out-of-the-box.
We can use the Flow Identity service to build public apps or apps that do not need third-party authentication. We can use the Runtime service to create subflows and flow outs. The Database service offers a hosted database for integration with Flow. We will use the Email service to build apps that sends emails.
We will need to install the service in our subtenants, before we can use them.
Wait! What is the air-speed velocity of an unladen swallow?
Before we start building service integrations, let’s ask ourselves if we absolutely need to. Boomi AtomSphere works seamlessly with Flow; which means we can use the entire library of AtomSphere connectors with Flow – without having to code or build a service from scratch.
If we do decide to, we can build our own service integrations using the Boom Flow API. We can build the integration in any language we like. Boomi Flow has a Service SDK for Java (recommended), C#, Ruby, and Apex.
- Database: The ability to connect to a remote data source and perform Save, Load, and Delete operations.
- Files: The ability to expose files stored in an external repository from within your Flow applications. This also allows users to upload and manage files through your flow.
- Social graph: The ability to embed a social network feed into your flow. This enables much richer collaboration within your apps, and helps increase adoption.
- Identity: For many customers, you will already have a directory of users in place. This allows you to re-use your existing identity system rather than creating yet another user repository.
- Location: The functionality for location is not yet released, but will soon allow you to tap into location services not provided by our platform. Location is increasingly a key tenant of any modern application.
- Logic: For many integrations, there are core API calls and pieces of logic that are better left in code. You can use the Service element to integrate with existing application logic – written in any language.
- User interface: Some applications may have user interface elements that would be useful to re-use within your applications. This service allows you to embed existing user interface rather than creating it from scratch on the Flow platform.
- Service code: The Flow platform connects to external APIs via services. The role of the Service code is to act as a ‘proxy’ or gateway between the platform, and application, service provider, or database.
- API-agnostic development with JSON/REST: The communication between the services code and the Flow platform is done using JSON/REST. This ensures our builders can leverage multiple applications, service providers, or databases without having to learn the nuances of each API. For example, types, logic, or messages are the same, and automatically appear in the tooling with a service integration. Similarly, a Box Folder works the same way as an Account in Salesforce, or a SMS in Twilio. The Flow engine treats these as business objects, and apps are abstracted away from the underlying implementation.
- Reusable by design: You do not need to hard code configuration settings while building a service integration. Your services will be ‘multi-tenant’ and ‘multi-purpose’.