App launchers in Geovonic Connect enable you to pass information about selected map features to a third-party application for further processing. Optionally, they can open the third-party application within the user’s current context.
Generic HTTP Request Launcher
The Generic HTTP Request Launcher sends information about selected map features to a web service for processing. If the web service returns a redirect URL, Geovonic Connect opens it in the user’s browser. If the web service returns a message, Geovonic Connect displays it to the user.
Example use case: You can send selected features to a Microsoft Power Automate flow, where custom processing tasks such as sending emails, updating a database, calling a REST API, or modifying GIS feature data can be executed.
Configuring the Launcher
Launcher Type: HTTP Request Launcher
Request URL
Provide the fully qualified URI of the web service. Query parameters can be included in the URI.
HTTP Method
Select the HTTP method from the dropdown. POST is most commonly used, as it passes feature data in the request body.
Request Headers (Optional)
You may include optional request headers to support security or authorization requirements, such as firewall rules. Specify headers one per line using the format NAME=VALUE
(e.g., Authorization=Bearer abcd12345edfg
).
Widget Input Fields (Optional)
List any input fields to be displayed in the Geovonic Connect widget. Enter one field name per line. These fields will accept user text input.
Redirect URL
Complete this section if the web service will return a URL that should be opened by the Geovonic Connect widget.
Response Type
Specify whether the redirect URL is returned as an HTTP response Header or in the JSON response body.
Location
- Header: Enter the name of the HTTP response header containing the URL.
- JSON: Specify the path to the URL using dot notation (e.g.,
response.url
for{ "response": { "url": "https://acme.com/abc" } }
). Only simple JSON paths are supported (no arrays).
Response Message
Complete this section if the web service returns a message to be displayed in the Geovonic Connect widget.
Response Type
Specify whether the message is returned as an HTTP response Header or in the JSON response body.
Location
- Header: Enter the name of the HTTP response header containing the message.
- JSON: Specify the path to the message using dot notation (e.g.,
response.message
for{ "response": { "message": "Successfully added 17 work orders" } }
). Only simple JSON paths are supported (no arrays).
Web Service Request Body
Selected map features and any widget attribute values are sent as a JSON object in the body of the web service request. The structure is as follows:
{ "features": [ { "attributes": { "OBJECTID": 1, ... }, "geometry": { ... } } ], "widgetProperties": { "first-name": "Sam" } }
- Features: An array of GIS features using the ArcGIS Feature Object JSON format.
- Widget Properties: An object containing attributes from the widget input form. Attribute names are generated from the field labels in the Widget Input Fields section of the launcher configuration. For example, a “First Name” input will use the slug
first-name
.
Web Service Response
To be considered successful, the web service must return a 2XX status code. Responses outside this range will trigger an error message for the user.
The web service can return either a URL or a message:
- If a URL is returned, Geovonic Connect will open it in a new browser tab.
- If a message is returned, Geovonic Connect will display it to the user.
- If both a URL and a message are returned, only the URL will be used.
- If neither is returned, Geovonic Connect will display a generic success message.
The location of the URL or message in the response is defined in the Launcher Configuration.
Example 1: If the URL is returned in an HTTP header called X-Launch-URL
, set the Response Type to Header and specify X-Launch-URL
in the Location field.
Example 2: If the message is returned in the JSON body like this:
{ "response": { "message": "Data has been updated" } }
Set the Response Type to JSON and use the location response.message
. Only simple dot notation is supported (no arrays).