Remote Data Sender
Use this plugin to send data obtained from respondents of your forms to a third-party application using a HTTP request.
*Remote URL - Indicate URL to access a third party and send the data to. Here you can add {RespondentID} and {FormID} formats to get respondent ID and form ID respectively.
Example:
The remote URL https://192.168.1.1/remote.php?respondent={RespondentID}&formID={FormID} would return respondent = 123456789 surveyID = 123456 on a server.
*HTTP/HTTPS Request Method - Select the request method you want to use when sending data.
POST - is recommended for using if the URL of the third party application is very long or contains non-ASCII characters.
GET - this method is recommended if the target application is idempotent.
Timeout - Specify a possible timeout of a third party application where you want to send the data.
Submit Value - Provide parameter for the submit event.
*Form Elements Names and Values - Input parameter names and values using the Param_Name=Param_value format. For example, FF_01=Q1.A1, where FF_01 is the arbitrary name of the parameter you are sending data to, Q1.A1 is the parameter value.
If you need to send the links to the files which were added via File Upload questions, you may use the following tags:
LINK:Qx.Ay for downloadable links
PLINK:Qx.Ay for preview links. The PLINK reference will show a preview of an image or an icon for other files.
When an image is accessed by a direct link, a browser will show a download dialog.
To view the images right away, place a link to the image inside the <img src='downloadable link'/> HTML tag
Using plugin to send the report links
The plugin can send the Report by Respondent (rbr) links to an external application along with other data.
The parameter for this and its value may be specified in the following way: Parameter name=Parameter value; for example: rbr_link=[R]
Note that the rbr_link parameter name is just an example, and you can come up with your own.
The following tags may be used as the parameter value: [R], [RnoNav], [RnoHidden], [RPDF].
The difference between these tags is described in the Email Body Text Help chapter (the 'Email Alert Tags' section).
Errors Processing
if there are multiple plugins set up in a form, the requests generated by the plugins will be sent via separate queues. These queues are unique per User Identifier and remote URL.
Depending on the received errors codes, messages sending will be retried according to the following rules:
Code 500. Module retries to send a request after 1,5,25 min, then every 30 min for 3 hours, and then sends it to the error queue.
Codes 408,502,503,504. Module retries to send a request after 1, 5, 25 min, then every 30 min for 24 hours, and then sends it to the error queue.
Module retries to send exceptions without code (timeouts, etc.) after 1, 5, 25 min, then every 30 min for 24 hours.
Other (404,401) codes are logged as errors and module does not try to send a request again.
For more information, please refer to the following table:
HTTP Code(s) | 1st Interval | 2nd Interval | 3rd Interval | 4th Interval | 4th Interval Duration |
500 (Internal Server Error) | 1 minute | 5 minutes | 25 minutes | 30 minutes | 3 hours |
408 (Request Timeout) | 1 minute | 5 minutes | 25 minutes | 30 minutes | 24 hours |
502 (Bad Gateway) | 1 minute | 5 minutes | 25 minutes | 30 minutes | 24 hours |
503 (Service Unavailable) | 1 minute | 5 minutes | 25 minutes | 30 minutes | 24 hours |
504 (Gateway Timeout) | 1 minute | 5 minutes | 25 minutes | 30 minutes | 24 hours |
404 (Not Found) | Does not Resend | ||||
401 (Unauthorized) | Does not Resend | ||||
409 (Conflict) | Does not Resend | ||||
400 (Bad Request) | Does not Resend | ||||
All Other Valid HTTP Codes | Does not Resend | ||||
Exceptions without code (timeouts etc) | 1 minute | 5 minutes | 25 minutes | 30 minutes | 24 hours |
The initial request should happen near real time and if a failure occurs, the retry attempts will wait according to the above. Each request that retries will block all other requests for the same endpoint and the same user that the form belongs to. If there is the same endpoint but different forms that were created by different users – requests will be blocked in separate queues.