Logical Remote Data Sender
"Logical remote data sender" plugin is used to send data from the survey that is submitted by respondents to a third party application via HTTP request and only if the indicated condition is met.
*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.
2. *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.
3. Submit Value - Provide parameter for the submit event.
4. *Send When Next or Submit - If your survey has more that one page you can enable data sending when respondents click Submit only or when they navigating between survey pages(e.g. they click Next).
5. *Logical Expression to Enable Sending - Specify the logical expression upon which the request should be sent. If the request should be sent always, please use Remote Data Sender plugin.
6. *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.
Errors processing
if there are multiple plugins set up in a form/survey, 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 end point 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.