Skip To Content
ArcGIS Developer
Dashboard

Edit

  • URL: https://[root]/services/[ServiceName].[ServiceType]/webhooks/[webhookID]/edit(POST only)
  • Required Capability:Default administrator role | Feature layer | Geoprocessing
    Note:

    Users assigned the Geoprocessing privilege will also require the Publish server-based layers privilege to be added to their custom role.

  • Version Introduced:11.1

Description

The edit operation allows administrators to update a previously configured geoprocessing or feature service webhook. Once updated, the changes will be applied immediately. If the payload URL for a webhook has changed or if the event trigger for a feature service webhook has been updated, the new trigger or payload URL will be used when the webhook is next invoked.

Note:

ArcGIS Enterprise supports organization, feature service, and geoprocessing webhooks. The ArcGIS Portal Directory allows for the creation and management of organization webhooks, whereas the ArcGIS Server Administrative API Directory supports the creation and management of geoprocessing and feature service webhooks. For more information on organization webhooks in ArcGIS Enterprise, see either the ArcGIS Portal Directory API webhook documentation or the Manage webhooks in ArcGIS Enterprise administrative documentation. ArcGIS Online also supports feature service webhooks, which are managed in the ArcGIS Online Administrative Services Directory. To learn more about ArcGIS Online feature service webhooks, see the Web Hooks API documentation.

Request parameters

ParameterDetails
name

(Required)

The webhook name.

Example

name=Microsoft Flow
changeTypes

(Required for feature service webhooks)

Note:

This parameter is not applicable to geoprocessing service webhooks.

Specifies the event triggers that will invoke the webhook. For more information about the supported event triggers listed below, see the Feature service event triggers section. The values for this parameter can be submitted as a string or as an array.

Values: * | FeaturesCreated | FeaturesUpdated | FeaturesDeleted | FeaturesEdited | AttachmentsCreated | AttachmentsUpdated | AttachmentsDeleted | LayerSchemaChanged | LayerDefinitionChanged | FeatureServiceDefinitionChanged

Example


//String example
changeTypes=FeaturesDeleted, FeaturesEdited, FeaturesUpdated

//Array example
changeTypes=["FeaturesDeleted", "FeaturesEdited", "FeaturesUpdated"]
signatureKey

(Optional)

A user-defined string that is sent in the payload to help the webhook receiver authenticate the payload.

Example

signatureKey=123456789ABCDE
hookUrl

(Required)

The payload URL where the payload will be delivered once the webhook is invoked.

Example

hookUrl=https://app.logic.azure.com:443/workflows/...
contentType

(Optional)

Specifies the media type of the resource. The media type is a string sent with the file indicating the file's format.

Values: application/json | application/x-www-form-urlencoded

payloadFormat

(Optional)

Specifies the response payload format. The default value is json.

Values: json | pjson

active

(Optional)

Specifies whether callbacks will be enabled (true) or disabled (false) when a webhook is triggered. The default value is true.

Values: true | false

scheduleInfo

(Optional for feature service webhooks)

Note:

This parameter is not applicable to geoprocessing service webhooks.

The window for cataloging event triggers for a feature service. The modifiable values for this parameter are the name property, which allows you to provide a name of the schedule type, and the interval property, which sets the value for how frequently payloads will be delivered. For feature services that receive frequent updates, the schedule for its webhook can be modified to send more frequent payloads containing less information by reducing the interval value. For feature services that receive less frequent updates, the interval value can be raised to send less frequent webhooks that include more event information. The default, and minimum, value for the interval property is 20 seconds.

Example, formatted for readability

scheduleInfo={"name":"Every20Seconds","state":"enabled",
"startAt":1670521784506,"recurrenceInfo":{"interval":20,"frequency":"second"}}
f

The response format. The default format is html.

Values: html | json | pjson

Feature service event triggers

The table below lists the supported event triggers for feature services:

EventDetails
*

Any event is triggered.

FeaturesCreated

A feature is created.

FeaturesUpdated

A feature is updated.

FeaturesDeleted

A feature is deleted.

FeaturesEdited

A feature is edited (e.g., insert, update, or delete).

AttachmentsCreated

A new attachment is added to a feature.

AttachmentsUpdated

A feature attachment is updated.

AttachmentsDeleted

A feature attachment is deleted.

LayerSchemaChanged

A feature layer's schema is changed.

LayerDefinitionChanged

A feature layer's definition is changed.

FeatureServiceDefinitionChanged

A feature service's definition is changed.

Example usage

The following is a sample POST request for the edit operation, editing a geoprocessing service webhook to use a new payload URL:


POST /webadaptor/admin/services/myService.GPServer/webhooks/create HTTPS/1.1
Host: machine.domain.com
Content-type: application/x-www-form-urlencoded
Content-Length: []

name=Microsoft Flow&signatureKey=123456789ABCDE&hookUrl=https://app.logic.azure.com:443/workflows/80fd5c68fcd84b3491b25330680ef1&payloadFormat=pjson&active=true&f=pjson

The following is a sample POST request for the edit operation, editing a feature service to subscribe to an additional event trigger (FeaturesUpdated) and use a new payload URL:


POST /webadaptor/admin/services/myService.FeatureServer/webhooks/create HTTPS/1.1
Host: machine.domain.com
Content-type: application/x-www-form-urlencoded
Content-Length: []

name=Microsoft Flow&changeTypes=FeaturesCreated,FeaturesUpdated&signatureKey=123456789ABCDE&hookUrl=https://app.logic.azure.com:443/workflows/80fd5c68fcd84b3491b25330680ef1&payloadFormat=pjson&active=true&f=pjson

JSON Response syntax


{
  "id": "<webhook ID>",
  "folderName": "<the service's root folder name>",
  "serviceName": "<the service name>",
  "serviceType": "<the service type>",
  "name": "<webhook name>",
  "changeTypes": ["event triggers"],
  "signatureKey": "<signature key>",
  "hookUrl": "<payload URL>",
  "active": <true | false>,
  "contentType": "<application/json | application/x-www-form-urlencoded",
  "scheduleInfo": { //The following object is only returned when modifying a feature service webhook, as scheduling info is not applicable to geoprocessing webhooks
    "name": "<user provided schedule name>",
    "state": "enabled",
    "startAt": <time in Epoch>,
    "recurrenceInfo": {
      "interval": <integer value>,
      "frequency": "second"
    }
  },
  "payloadFormat": "<json | pjson>",
  "created": <time in Epoch when the webhook was created>,
  "modified": <time in Epoch when the webhook was last modified.>,
  "ownerId": "<user-name of the webhook's owner>",
  "modifiedId": "<username of the user to last modify the webhook.>",
  "status": "<success message>"
}

JSON Response example

The following is a sample JSON Response for an updated geoprocessing service webhook:


{
  "id": "91ece443-746b-43eb-9ba4-d4055b771017",
  "folderName": "System",
  "serviceName": "CachingTools",
  "serviceType": "GPServer",
  "name": "UpdatedWebhook",
  "changeTypes": ["*"],
  "signatureKey": "12345ABCDEF",
  "hookUrl": "https://app.logic.azure.com:443/workflows/...",
  "active": true,
  "contentType": "application/json",
  "scheduleInfo": {},
  "payloadFormat": "json",
  "created": 1670878247288,
  "modified": 1670878267973,
  "ownerId": "webhookAdmin",
  "modifiedId": "webhookAdmin",
  "status": "success"
}

The following is a sample JSON Response for an updated feature service webhook:


{
  "id": "e871defd-b339-43eb-aeeb-d500184820c6",
  "folderName": "Hosted",
  "serviceName": "Test",
  "serviceType": "FeatureServer",
  "name": "UpdatedWebhook",
  "signatureKey": "12345ABCDEF",
  "hookUrl": "https://app.logic.azure.com:443/workflows/...",
  "active": true,
  "contentType": "application/json",
  "scheduleInfo": {
    "name": "Every60Seconds",
    "state": "enabled",
    "startAt": 1670521784506,
    "recurrenceInfo": {
      "interval": 60,
      "frequency": "second"
    }
  },
  "payloadFormat": "json",
  "created": 1670878247288,
  "modified": 1670878267973,
  "ownerId": "webhookAdmin",
  "modifiedId": "webhookAdmin",
  "changeTypes": ["FeaturesUpdated"],
  "status": "success"
}