Pushing Data to External Apps

In this guide, we will build a few iterations of the data push scenario, increasing the complexity as we go.

To make this guide specific, we will be pushing Contacts to an external app. You can use the same approach for any other type of data.

Create Data Record

If you need to simply create a data record in external applications, create a "Create Data Record" Action.

If you want to create one of the standard data models, you can start with a pre-built blueprint, otherwise create one from scratch:

Here is what you'll need to configure in the action:

  • Input Schema – specify inputs your application will provide to create the record.
  • Data Source – select where in the external app you want to create a data record. You can use one of our Universal Data Models or create a shared Data Source (more on that later).
  • Field Mapping – map your input schema to the fields of the record you want to create.

The resulting action will look like this:

Find or Create

If you want to check if a matching data record exists in the external app before creating it, create a Flow with three steps:

  • Trigger – we will use an API trigger for simplicity.
  • Lookup Data Record – to find an existing data record by one of its fields.
  • Create Contact – we will re-use the "Create Contact" action we've created in the previous step.

The flow will look like this:

Lookup Data Record will search for an existing contact by email:

Then it will route the execution depending on whether a contact was found.

Create Contact step will use the same action we've created before:

Data Source

Since we use data collection in two places (lookup contact and create contact), it makes sense to create a Data Source:

and use it in both places:

Field Mapping

Similarly to Data Source, it may be a good idea to create a Field Mapping. It will let you:

  • Use the same mapping in multiple places (i.e. if you want to update contact if it exists, not just create a new one).
  • Let your customers configure the field mapping for their unique setup.

If you decide to create a Field Mapping, use it in the Create Contact action:

Pushing Related Objects

Let's say you want to push a Note along with the Contact and associate it with the contact.

For this, you can add another "Create Data Record" node to the flow:

This flow has two changes compared to the previous version:

  • Create Note node was added.
  • Execution path with existing contact found was linked to the new node. Now note will be created regardless of whether we created a contact.

To associate Note with the correct contact, you need to set the Contact Id field. This ID can come from two places: Lookup Contact or Create Contact nodes.
To account for that, use a "First Not Empty" formula and let it choose the variable to use:

Reacting to Events in Your App

Depending on your use case, you may want to push changes (create, update, or delete records) to an external app based on events in your app rather than making explicit API calls to launch actions or flows.

To do this, you can:

  • Create one or more App Events that are triggered when changes happen in your app.
  • Modify the flow(s) to start with an App Event trigger instead of (or additionally to) an API trigger.

Here is how the resulting flow may look like:

This flow can be triggered by API or when an event happens in your app.

You can implement similar flows for updating or deleting records.

Extending Functionality

After you've pushed data to an external app, you may want to receive updates from it. Check out Continuous Import.

Live Examples