Step 1: Define and Connect a Data Source
To display and manipulate data rows from an external system, you will first need to define a Data Source which models the particular data entity in question. Effectively, a Data Source is just rows and columns of data. The rows and columns will need to be connected or otherwise pushed into our system for use in your apps. You can get the required rows into our system by one of the following means:
- Manually import the rows from an Excel or CSV file
This is not recommended if the data is going to change regularly, since you'll have to keep manually importing to keep the data up to date in your apps.
- Use a built-in Connector
We provide various Connectors for Data Sources that allow you to pull data rows in your Data Source with an ongoing, automatic refresh. There is also a special Hosted GET connector which allows you to expose a REST web service that returns rows directly from your external system to the app, using our required documented Hosted GET response format.
- Push data into your Data Source via our API
We provide a Data Source endpoint on our REST API that allows you to programmatically push rows into your Data Source on a regular basis.
Step 2: Design a Form which allows create/update of rows
Once you have a Data Source in place, create a Form screen with a Choices or Data Source field that is linked to your target Data Source. You can then use filters and user interaction to select a row in the given Choice/Data Source field type. Once a row is selected, you can populate column values into other Form fields using the "Bind to Data Source" field property or via the Dynamic Value property.
We also provide the ability to reflect changes to rows on the app and against server-side Data Sources, provided the server-side Data Source does not have a Connector on it. All connected Data Sources (i.e., those that have a Connector) are treated as being "one way" - i.e., the external data provider is the "source of truth" and we do not push any changes back to that outside provider.
Step 3: Push row changes back to your external system
There are three ways to effect an update of rows to an external system:
- Use our API to retrieve Form entry results
You can also poll our API for new Form entries and apply the data row changes as needed on your side based on the Form entry answer values. This method is not recommended: not only does the data fail to reach your system real-time, but it also doesn't scale well since you run the risk of exhausting your API usage limits. For more information on this, please see this article.
- Use a REST Connector on your Form
This is the recommended approach, using a REST connector on your Form that will push changes to a web service on your side. You can then perform the necessary data manipulations and reflect these changes on the results you return on any connected Hosted GET data sources. Also with this method, data is pushed to your external system real-time as soon as a data submission is made and hits our servers. More detail about the REST connector can be found in this article.
- Use a "row-based" Connector on your Form
We provide several Form Connectors that can create/update rows directly on an external source -- e.g., our SharePoint List and Google Sheet connectors. More information can be found in these articles.
Regardless of your chosen approach, we still recommend that you use the "Create/update" options on a Choices/Data Source field in a Form, as outlined in our Form Recipe. The reason for this is that while there will be no Data Source changes made on the server side (see our "one way" rule above), the changes will still be reflected against the app's local cached Data Source rows. This way, the app will display a consistent view of any Data Source row changes to the user, at least until the next time the app syncs with your Data Source. When the next sync occurs, we assume that your system will reflect the results of any submitted Form entries, as those apply to your row sets.