brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
procore-webhooks-eventsOperate Procore hooks, triggers, deliveries, deduplication, and reconciliation as a best-effort notification system. Use when creating webhook subscriptions, upgrading payload formats, or recovering delayed, duplicate, or discarded deliveries. Trigger with: "set up Procore webhooks", "handle duplicate Procore events", "reconcile Procore webhook gaps".
Independent GitHub snapshot · Automated classification · Original documentation governs
name: procore-webhooks-events description: >- Operate Procore hooks, triggers, deliveries, deduplication, and reconciliation as a best-effort notification system. Use when creating webhook subscriptions, upgrading payload formats, or recovering delayed, duplicate, or discarded deliveries. Trigger with: "set up Procore webhooks", "handle duplicate Procore events", "reconcile Procore webhook gaps". allowed-tools: Read, Grep, Write, Edit version: 2.0.0 argument-hint: '[company-or-project-scope-and-resource-events]' model: inherit effort: high license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:
Use webhooks for freshness and REST reconciliation for completeness. A delivery tells the receiver that a committed Procore change occurred; it is not the resource itself and may be duplicated, delayed, or discarded after prolonged endpoint failure.
Use the current recommended payload format for new integrations and record the schema contract. Treat string identifier changes and renamed event fields as a versioned migration.
Create one company- or project-scoped hook with an HTTPS destination, required namespace, minimal destination headers, and no secrets in logs.
Subscribe only to documented resources and reasons the application processes. Verify hook and trigger state through the documented API.
Validate structure, record the event identifier, enqueue a follow-up read, and return a success response within the provider timeout. Process business work asynchronously.
Use event ID or ULID according to the chosen payload. Fetch the current resource from REST and make downstream processing idempotent.
Monitor deliveries and run periodic REST scans from a durable cursor. Explicitly repair the gap after endpoint failure or discarded notifications.
Webhook configuration calls use an OAuth 2.0 Bearer token with Webhooks API permission. Destination authentication uses only minimal reviewed headers; never log those headers or confuse them with Procore OAuth credentials.
Use Read and Grep to inspect handler code, delivery evidence, and endpoint contracts. Use Write or Edit only for the approved hook manifest, handler, test, cursor, or receipt; provider-side hook changes require explicit approval.
Return scope, namespace, payload version, trigger set, acknowledgment result, and reconciliation checkpoint.
An RFI update delivery is acknowledged and queued immediately. A worker deduplicates by the versioned event identifier, retrieves the current RFI, and updates downstream state; a periodic scan catches any notification lost during receiver downtime.
| Failure | Response |
|---|---|
| Receiver exceeds provider timeout | Acknowledge after durable enqueue and move processing out of the request path. |
| Duplicate delivery | Treat it as a no-op after confirming the event identifier was completed. |
| Delivery queue was discarded | Determine the gap window and run REST reconciliation before resuming. |
| Destination secret appears in logs | Rotate it, scrub artifacts, and reduce logged headers. |