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 that 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 REST connector that allows you to expose a REST web service that returns rows directly from your external system to the app, using our required documented REST 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 regularly.
Step 2: Design a Form that allows you to create/update 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 in 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 in real-time as soon as a data submission is made and hits our servers. More details about the REST connector can be found in this article.
If you don't have access to software developers to build a custom web service, then maybe try using automation tools like Zapier to create such a service.
Note that these services are great for small numbers of monthly transactions, but can cost hundreds of dollars monthly if you're going to be doing thousands of transactions per month.
The other non-programming option is to use our Sync product, which provides an "integration in a box"
You would install Sync on your own web server, along with a local SQL Server database to hold the data.
Note that SQL Server Express - which is the free version of SQL Server - works fine with Sync. After installing, Sync will plug into our APIs and it will be ready to receive incoming REST connector Form data, automatically creating and updating rows in your SQL Server database. Get a free 30-day trial of Sync by using the TRY button against this option in the Billing area.
- 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.