iFormBuilder Data
Table of Contents
Also, be sure to check out:
What is Post Data?
Post Data is similar to the e-mail report in that it pushes a copy of the record data out of iFormBuilder to a user-defined web page (while maintaining the original record on the iFormBuilder database). This action takes place every time a new record is successfully uploaded to the server, or an existing record is updated.
How do I create a Post Data endpoint?
To create a Post Data endpoint, please follow the instructions below.
STEP 1. From the admin portal, hover over the Forms tab and select Form Assignment.
STEP 2. Highlight the form you'll be working with and click Assign.
STEP 3. Scroll down to the Post Data section and click + New Endpoint.
STEP 4. Enter the details of your endpoint.
- Name: The name of the POST service.
- Endpoint URL: The address iFormBuilder will send data to when a record is called for POST process
- Post Data Format: The data format you want to be delivered to the endpoint (XML, JSON).
- Post Body Content Type: Encoding format of the data being sent to the endpoint. Options will vary depending on Post Data format.
- Use Labels: With this option turned on, the data will use the column labels as tags instead of data column names.
- Mode: An endpoint mode is what triggers data to be sent. There are three different modes that can be selected: Insert/Update, Assign, and Delete.
- Error Email: An e-mail address that will receive an e-mail if the request fails after the number of retries is exceeded (5 days).
- Notification Email: An e-mail address that will receive an e-mail each time a request fails with a 400 or 500 level code and has not exceeded the maximum number of tries for Guaranteed Delivery.
- Guaranteed Delivery: With this option turned on when a POST request fails to reach the destination, it will be returned to a queue and will try again with the following schedule (1 minute, 5 minutes, 30 minutes, 6 hours, 24 hours).
- Request Time Limit: The amount of time before a request times out. The default is set to 10 seconds.
- Trigger Post Email: An e-mail address that will receive an e-mail when the Trigger Post Process has been completed (with guaranteed delivery enabled).
PLEASE NOTE: As of October 2018, we have removed access to Guaranteed Delivery and Request Time Limit to all users except for those with Server Admin access.
STEP 5. Click Create Endpoint.
PLEASE NOTE: With a dedicated database, you are able to post data to multiple endpoints. By allowing for more than one POST destination, data from records can meet multiple needs instead of just one. If you are using app.iformbuilder.com, then you are only allowed 1 post data endpoint per form.
Endpoint Modes
As mentioned above, there are three endpoint modes to choose from: Insert/Update, Assign and Delete. Each of the post will have a 'hook-action' inside a header. The hook action will tell you which mode has sent the data.
Insert/Update: This means that every time a record is uploaded from a device or edited in the admin console, it will send a post to the endpoint. API does not automatically trigger this on POST or PUT requests. You will need to do a trigger post processing call for those records to be sent.
Assign: Anytime a record is assigned, it will send a post to the endpoint. The record can be assign through mobile, admin console, webforms or API. All of them will trigger this post. The data will be the same as Insert/Update but it will also contain additional data called 'assign_params'. It will look something like:
"assign_params": {
"DEST_PAGE_ID": 6819,
"DEST_USER_ID": [81649,12345],
"TOTAL_COUNT": 4,
"GLOBAL_ASSIGN_ID": "iForm-6819-81649-16fbfc531888",
"MODE": "assign",
"TIME_OF_ASSIGNMENT": "2021-03-26 21:48:21",
"PROFILE_ID": 12345
}
DEST_PAGE_ID is the page that's being assigned. DEST_USER_ID is the array of users that the record is being assigned to. TOTAL_COUNT is the record count of all the records that was assigned in the same call. GLOBAL_ASSIGN_ID is a unique id that's tied to all the assigned records that was made in one call. TIME_OF_ASSIGNMENT is when the record(s) was actually assigned. PROFILE_ID is the profile that it is assigned in.
Delete: Whenever a record is deleted, it will send data to that endpoint.
What is Post Data?
Post Data is similar to the e-mail report in that it pushes a copy of the record data out of iFormBuilder to a user-defined web page (while maintaining the original record on the iFormBuilder database). This action takes place every time a new record is successfully uploaded to the server, or an existing record is updated.
JSON v10 Post Data Change
We changed a longstanding behavior in iForm Post Data endpoints that use the JSON v10 format. Currently, numeric data types (Number, Counter, Range, Timer) post a value of zero “0” when the field is null. This is different than our v9 format which correctly posts “null”. To ensure data is correctly reported, we will be changing the behavior of JSON v10 endpoints to post a value of “null” when the field is empty. This change will affect all customers. We understand that previously collected data may have been inaccurately reported on and existing integrations may need to be updated as a result of this change and are here to help.
Please see the attached PDF explaining in more detail what changes were made. If you have any additional questions, we are here to help.
Comments
9 comments
Security is the concern here. Are all these posts guaranteed to originate from the same IP address?
Your example appears to use port 80. Is iFormBuilder unable to post using SSL?
Hi Guy, the requests will not come from the same IP address as there are many servers which host the application. The example does show "http", but "https" is supported as well as long as the receiving server is setup for it.
How do we know what range of IP addresses to allow through our firewall? I assume this information is not published to the public.
Ideally you whitelist by domain and not an IP range because that can change over time.
The data security officers on our campus do not allow domain whitelisting because of the potential for dns poisoning. They only allow the whitelisting of ip address ranges.
Hey Rtims, you might consider having a server which sits between iFormBuilder and your campus network which acts as a pass through. This would allow you to whitelist the IP of the server you control outside the campus network, and ensures as the infrastructure scales the requests continue to come through.
Unfortunately, we don't have the budget to support additional servers.
Hey Rtims, AWS has a free tier that might be able to help you out. Worth taking a look if its just used as a passthrough.
https://aws.amazon.com/free/
Thanks for the info. I'll check into this.
Please sign in to leave a comment.