Act! CRM · AsyncAPI Specification
Act Webhooks
Version
View Spec
View on GitHub
CRMMarketing AutomationContact ManagementSalesOpportunity ManagementODataSmall BusinessAsyncAPIEvents
AsyncAPI Specification
generated: '2026-08-13'
method: searched
source: >-
https://apimta.act.com/act.web.api/ActHooks/Index (Act! WebHooks —
Notifications) and the Webhooks operations in
openapi/act-webhooks-api-openapi.yml.
type: Webhooks
asyncapi_published: false
asyncapi_note: >-
Act! publishes no AsyncAPI document. Probed /asyncapi.yaml, /asyncapi.json and
the Swiftpage GitHub organization — nothing. The event surface is documented
in prose plus a REST registration API, so this file is the webhook catalog,
not a spec.
description: >-
Act! Web API ships a first-class webhook registration API: a client POSTs a
webhook describing an entity to monitor, a trigger event, an optional OData
query to shape the payload, a callback URL and a symmetric callback token.
Notably, delivery is POLLED, not pushed at the moment of change — the Act!
Webhook Notifications service polls on an interval (default 900 seconds) and
then fires callbacks. An integrator expecting real-time semantics from the
word "webhook" will be surprised: worst-case latency is the polling interval,
not milliseconds.
availability:
self_hosted: true
cloud: false
cloud_note: >-
"This is not available in the cloud as of now, but coming soon." Webhooks
are configured by the Act! installer, which creates or connects to a webhook
registration database — so today the event surface belongs to self-hosted
Act! Premium for Web deployments, not Act! Premium Cloud.
source: https://apimta.act.com/act.web.api/ActHooks/Index
registration:
endpoint: POST /api/webhooks
operationId: Webhooks_Post_EE3CCFA8
spec: openapi/act-webhooks-api-openapi.yml
request_fields:
monitor: The entity monitored for notifications.
triggerEvent: The event that fires the notification.
queryOption: >-
Any valid OData query, used to target/filter the webhook and to request
additional properties in the notification body. Optional. If null or
blank the notification carries only the default properties. The provider
warns that repeating a default property inside queryOption can stop the
webhook firing correctly.
callbackUrl: The endpoint the notification is POSTed to.
callbackToken: A symmetric key added to the Authorization header of the callback.
description: Free-text description of the webhook.
management_operations:
- operationId: Webhooks_Get_3F017BC6
method: GET
path: /api/webhooks
summary: List registered webhooks (OData query supported).
- operationId: Webhooks_Get_8857FC56
method: GET
path: /api/webhooks/{id}
- operationId: Webhooks_Put_20B03A3C
method: PUT
path: /api/webhooks/{id}
- operationId: Webhooks_Patch_B8C243E8
method: PATCH
path: /api/webhooks/{id}
- operationId: Webhooks_Delete_649F8293
method: DELETE
path: /api/webhooks/{id}
- operationId: Webhooks_Suspend_A12B132D
method: PUT
path: /api/webhooks/{id}/suspend
summary: Suspend a webhook.
- operationId: Webhooks_Continue_511537A0
method: PUT
path: /api/webhooks/{id}/continue
summary: Resume a suspended webhook.
- operationId: Webhooks_PutTokenReset_C1A718D3
method: PUT
path: /api/webhooks/reset-token
summary: Rotate the webhook callback token.
monitors:
- Activities
- Companies
- Contacts
- Fields
- Groups
- History
- Opportunities
- Products
trigger_events:
- Created
- Updated
- Alarms
events:
- name: Activities.Created
monitor: Activities
triggerEvent: Created
- name: Activities.Updated
monitor: Activities
triggerEvent: Updated
- name: Activities.Alarms
monitor: Activities
triggerEvent: Alarms
note: >-
Alarms behave differently from the other events — they are pulled into a
queue on the polling cycle but are not broadcast until the alarm actually
sounds. Default payload properties for Alarms are id, startTime and
leadMinutes.
- name: Companies.Created
monitor: Companies
triggerEvent: Created
- name: Companies.Updated
monitor: Companies
triggerEvent: Updated
- name: Contacts.Created
monitor: Contacts
triggerEvent: Created
- name: Contacts.Updated
monitor: Contacts
triggerEvent: Updated
- name: Fields.Created
monitor: Fields
triggerEvent: Created
note: >-
Metadata is cached, so Fields webhooks do not send notifications when a
field is created or updated OUTSIDE the API.
- name: Fields.Updated
monitor: Fields
triggerEvent: Updated
note: Same metadata-cache caveat as Fields.Created.
- name: Groups.Created
monitor: Groups
triggerEvent: Created
- name: Groups.Updated
monitor: Groups
triggerEvent: Updated
- name: History.Created
monitor: History
triggerEvent: Created
- name: History.Updated
monitor: History
triggerEvent: Updated
- name: Opportunities.Created
monitor: Opportunities
triggerEvent: Created
- name: Opportunities.Updated
monitor: Opportunities
triggerEvent: Updated
- name: Products.Created
monitor: Products
triggerEvent: Created
- name: Products.Updated
monitor: Products
triggerEvent: Updated
payload:
default_properties: [id, created, edited]
alarm_default_properties: [id, startTime, leadMinutes]
shaping: queryOption (OData $select/$expand) adds properties to the notification body.
delivery:
model: polled-then-pushed
polling_interval_seconds: 900
polling_interval_setting: PollingIntervalSeconds
retry_interval_seconds: 120
retry_interval_setting: PollingRetryIntervalSeconds
retry_attempts: 3
retry_attempts_setting: RetryAttempts
on_exhaustion: The webhook is suspended (resume with PUT /api/webhooks/{id}/continue).
configuration_service: Act.Webhook.Notifications
note: >-
These are service-configuration settings on the Act! installation, so an
on-premises administrator can change them; the values above are the
documented defaults.
security:
callback_auth: >-
The callbackToken supplied at registration is sent back in the
Authorization header of each callback — a shared bearer secret, not a
signature.
signature: false
signature_note: >-
There is no HMAC payload signature and no timestamp/replay defence. A
receiver can only compare the Authorization header to the token it
registered, which means the secret travels on every delivery.
tls: >-
The provider explicitly documents registering an http:// callbackUrl when
the receiver has no valid certificate, and registering the Act! Web API over
http when IT is not certificated — so plaintext delivery of the shared token
is a documented path.
gaps:
- No AsyncAPI document.
- No HMAC signature on deliveries; the shared token is replayed on every callback.
- Plaintext (http) callback registration is documented as supported.
- Not available on Act! Premium Cloud ("coming soon").
- Minimum 15-minute notification latency by default.
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/act-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.