Skip to main content

Webhook Events

Events are named with the format RESOURCE_TYPE.EVENT. The RESOURCE_TYPE corresponds to the shape of the payload. For example, FOLLOWED_OPP.MODIFIED will have a payload that mimics the /v3/opportunities/{{id}} endpoint.

Available Events

The following webhook events are available to subscribe to:

Workspace Events

  • OPP_WORKSPACE.FOLLOWED - Sent when a user follows a workspace
  • OPP_WORKSPACE.STATUS_CHANGED - Sent when a workspace’s status changes

OPP_WORKSPACE.STATUS_CHANGED

All organizations have default statuses (Qualifying, Intend to Bid, Quoted, Submitted, Awarded, Not Awarded, No Bid) and can define custom statuses. STATUS_CHANGED fires for all status transitions. The payload includes the current and previous status, so consumers know exactly what changed. displayStatus is the status name (e.g., “Qualifying” or a custom name like “Proposal Drafting”). Each status belongs to a stable statusCategory (triage, planned, in_progress, completed, canceled). Example payload:
{
  "event": "OPP_WORKSPACE.STATUS_CHANGED",
  "payload": {
    "id": "workspace-uuid",
    "createdAt": "2026-02-10T10:30:00Z",
    "updatedAt": "2026-02-18T14:22:00Z",
    "displayName": "Workspace Name",
    "archivedAt": null,
    "commentsCount": 3,
    "private": false,
    "createdByOrganization": "Acme Corp",
    "url": "https://app.govly.com/opportunities/{opp_id}/workspaces/{workspace_id}",
    "statusCategory": "in_progress",
    "displayStatus": "Proposal Drafting",
    "statusId": "status-uuid",
    "previousStatusCategory": "triage",
    "previousDisplayStatus": "Qualifying",
    "previousStatusId": "status-uuid",
    "comments": [],
    "follows": [],
    "opportunity": { "..." : "full opportunity object" },
    "activities": []
  }
}
Status fields:
FieldTypeDescription
statusCategorystringThe stable category the status belongs to. One of: triage, planned, in_progress, completed, canceled
displayStatusstringThe status name (e.g., a default like “Qualifying” or a custom name like “Proposal Drafting”)
statusIdstring or nullID of the status
previousStatusCategorystringThe status category before this change
previousDisplayStatusstringThe display status before this change
previousStatusIdstring or nullID of the previous status

Deprecated Workspace Events

The following events are deprecated. Use OPP_WORKSPACE.STATUS_CHANGED instead and check the displayStatus field to determine the workspace’s new state.
  • OPP_WORKSPACE.NO_BID
  • OPP_WORKSPACE.INTEND_TO_BID
  • OPP_WORKSPACE.QUOTED
  • OPP_WORKSPACE.SUBMITTED
  • OPP_WORKSPACE.AWARDED
  • OPP_WORKSPACE.NOT_AWARDED

Opportunity Events

Events handled by Govly’s opportunity processing pipeline in real time:
  • FOLLOWED_OPP.MODIFIED - Sent when modifications hit Govly
  • FOLLOWED_OPP.ENRICHED - Sent when Govly finishes LLM summarization