ArcGIS Field Maps

Connect Field Maps and Cityworks with Integromat

Many local governments and utility agencies use Cityworks to manage their infrastructure assets. Many of these same organizations also use ArcGIS Field Maps to record new assets, perform inspections, and submit service requests. Did you know that these two products can easily work together? The Cityworks mobile app includes a link to open ArcGIS Field Maps, and now you can use webhooks and Integromat to automate workflows. In this blog post we’ll walk through how to use Integromat to listen for new features and then create corresponding service requests in Cityworks—all without writing code.

Create the service request layers and map

First, you’ll create the service request layer and map used to collect service requests directly in the Field Maps mobile app. Sign into your ArcGIS Online account.

Note: The Field Maps app in Integromat is not currently supported on ArcGIS Enterprise. 

On the Content tab, click New item.

New item

Click Feature layer, and in the Create a feature layer window, select Water Service Request.

Water service request feature layer template

Click Create and follow the instructions for creating the layer. Use all the default options and provide a Title of “Water Service Request.” After you click Done, the layer is created and added to your content.

On the item details page of the new layer, click Open in Map Viewer.

Open in Map Viewer

Map Viewer opens with the Water Service Requests layer.

Save Map

Click the Save and open action then choose Save. Enter a title of “Water Service Requests” and click Save map.

Create the Integromat Scenario

Browse to Integromat.com and create an account if you haven’t already. Once you sign in, click Create a new scenario to get started.

Click on the large icon to start building the scenario. Search for “Field Maps”. Click ArcGIS Field Maps to use the Field Maps app. Select the Watch Features module.

Select Watch Features module

On the webhook configuration dialog, click Add to start configuring the webhook that will watch for new inspections.

Fill out the following information:

Add a hook

Click Save to register the webhook with ArcGIS Online. Then click OK to finish configuring the Watch Features module.

Next, we need to authenticate with Cityworks. Search for the HTTP app and select the Make a request action. Connect it to the ArcGIS Field Maps module.

Fill out the following information:

Authenticate with Cityworks

Click OK to save the configured module.

Next, search for the JSON app and select the Parse JSON action. We’ll use this module to extract the token that is returned from the previous request.

Click Add to add a new data structure.

Set the Data structure name to “Cityworks Authentication Response”.

Click Generator to generate the JSON specification from the following sample JSON:

Generate Cityworks Auth Response

Click Save to save the data structure.

Set the JSON String to be the “Data” object from the previous module and click OK.

Parse Cityworks Authentication Response

Next, you’ll add an Iterator module. This allows the webhook to iterate through an array of features if multiple features are returned at once. For example, if multiple mobile workers add new service requests around the same time, an iterator ensures each inspection is processed.

In the Tools section, click Flow Control.

flow control

From the list of options, select Iterator. The Iterator module is automatically added to the webhook and connected to the Field Maps module.

Click in the Array text box and then, using the dropdowns, find Adds[] under the Service Requests (0) layer. This is the array of new features to iterate over.

Iterator

Click OK to save the configured module.

Next, click the JSON app again (this time it’s under your favorites section) and select the Create JSON module.

Click Add to add a new data structure. This time we’ll add a simplified version of a Cityworks Service Request object. Consult the Cityworks Service Request API to view all the possible parameters.

Set the Data structure name to “Simplified Cityworks Service Request”.

Click Generate and use the following sample JSON to generate the data structure:

Simplified Cityworks service request data structure

Click Save to save the data structure.

Fill out the following information:

Create service request

Click OK to save the configured module.

Next, add another HTTP app and select the Make a request action. This is the final step in the scenario and it will submit a request to Cityworks to create the Service Request.

Fill out the following information:

Submit request to Cityworks

Click OK to save the configured module.

Finally, we want to add a filter so that only features that are of the “Water Quality – Cloudy Water” type are creating service requests. Click on the wrench icon between the Iterator and JSON modules.

Set the Label to “Is Cloudy Water”.

Set the Condition to check that the “Type of Issue (REQUESTTYPE)” is Equal to “Water Quality – Cloudy Water”.

Filter

Click OK.

At this point, the entire scenario is complete and ready for testing! It should look like this:

The scenario

Click Run Once so that the scenario is active.

In the Field Maps mobile app, open the “Water Service Request” map you created and collect a new feature as shown below:

Collect feature

In Integromat, you should see the scenario execute within 30 seconds or so. After it completes, open the Cityworks Respond app. There should be a new request using the attributes submitted from the Field Maps mobile app.

Cityworks respond app

This is one way to use the Field Maps Integromat app to complete an integration workflow with Cityworks. You could extend this in so many ways! See the Automate Field Maps  and Work Management topics for more information.

About the author

I am an Engineer on the Field Apps team primarily focused on Location Tracking, Workforce, and Automation. In my free time, you can often find me hiking, camping, or kayaking throughout Maine and New Hampshire.

Connect:
0 Comments
Inline Feedbacks
View all comments

Next Article

What's New in ArcGIS Experience Builder Developer Edition (version 1.6)

Read this article