Skip to main content

Webhooks in Qondor

A reference for all available webhooks in Qondor, including payload examples and common integration use cases.

Written by Stine Karlsen O'Connor

Qondor supports webhooks so you can pipe events from the platform straight into the tools your team uses. This article covers every available webhook, what fires it, and a few ways people actually use them.

Webhooks are set up by the Qondor team. When you get in touch, send us:

  • The endpoint URL you want Qondor to POST to

  • Which topics you need (one or several)

  • Whether it should cover all your offices, a specific office group, or a single office

  • An authentication header key and value if your endpoint requires it

HOW WEBHOOKS WORK

Each webhook is an HTTP POST to your endpoint with a JSON body. Payloads use camelCase and always include three fields at the top:

  • webhookId: a unique UUID per event, useful for deduplication if your endpoint receives the same event more than once

  • timestamp: when the event occurred, in UTC

  • topic: the webhook type, for example OfferSentV1

Delivery is async, so expect a short delay between the event in Qondor and the POST arriving at your endpoint.

AVAILABLE WEBHOOKS

OFFER SENT

Triggered when an offer is sent to a customer.

Common uses: log the send event in your CRM and start a follow-up task; notify your sales team in Slack or Teams; update a deal stage to "Offer sent".

Request body

{
  "webhookId": "84f48600-cdfc-477e-8257-916f9f3f7094",
  "timestamp": "2024-10-18T07:32:12.3678338Z",
  "topic": "OfferSentV1",
  "projectId": 1,
  "projectNo": "[Project No]",
  "projectName": "[Project Name]",
  "projectMainCustomerContactPersonEmail": "[Customer ContactPerson Email]",
  "offerId": 1,
  "offerHeading": "[Offer Heading]",
  "offerLanguage": "nb-NO",
  "offerValidUntil": "2024-11-01T08:32:12.3678146",
  "offerLink": "https://app.qondor.com/CustomerWeb/Home?projectId=1",
  "directLink": "https://app.qondor.com/CustomerWeb/Home?projectId=1&offerId=1",
  "customerId": 1,
  "customerName": "[Customer Name]",
  "customerExternalReference": "[Customer External Reference]"
}

OFFER ANSWERED

Triggered when a customer responds to an offer.

Common uses: alert the account manager and trigger an approval workflow; update the deal to "Accepted" or "Declined" in your CRM; kick off onboarding steps automatically.

Request body

{
  "webhookId": "859c49b3-55ba-46b6-95b2-038a34352e56",
  "timestamp": "2024-10-18T07:30:27.6387497Z",
  "topic": "OfferAnsweredV1",
  "projectId": 1,
  "projectNo": "[Project No]",
  "projectName": "[Project Name]",
  "projectMainCustomerContactPersonEmail": "[Customer ContactPerson Email]",
  "offerId": 1,
  "offerHeading": "[Offer Heading]",
  "offerLanguage": "nb-NO",
  "offerValidUntil": "2024-11-01T08:30:27.6387301",
  "offerLink": "https://app.qondor.com/CustomerWeb/Home?projectId=1",
  "directLink": "https://app.qondor.com/CustomerWeb/Home?projectId=1&offerId=1",
  "customerId": 1,
  "customerName": "[Customer Name]",
  "customerExternalReference": "[Customer External Reference]"
}

OFFER COMMENT TO CUSTOMER CREATED

Triggered when a comment is sent to a customer from Adminweb.

Common uses: forward comments to a team channel so account managers stay in the loop; log the touchpoint on the CRM timeline.

Request body

{
  "webhookId": "db44e0f6-b06a-4070-9740-efd89ceaedfb",
  "timestamp": "2024-10-18T07:29:14.7362436Z",
  "topic": "OfferCommentToCustomerCreatedV1",
  "projectId": 1,
  "projectNo": "[Project No]",
  "projectName": "[Project Name]",
  "projectMainCustomerContactPersonEmail": "[Customer ContactPerson Email]",
  "offerId": 1,
  "offerHeading": "[Offer Heading]",
  "offerLanguage": "nb-NO",
  "offerLink": "https://app.qondor.com/CustomerWeb/Home?projectId=1",
  "directLink": "https://app.qondor.com/CustomerWeb/Home?projectId=1&offerId=1#feedback?rootItemId=1",
  "customerId": 1,
  "customerName": "[Customer Name]",
  "customerExternalReference": "[Customer External Reference]",
  "commentedOn": "[Product or Group Name]",
  "commentText": "[Comment Text]"
}

PROJECT CREATED

Triggered when a new project is created in Qondor.

Common uses: create a matching record in your ERP or CRM; provision a Slack or Teams space for the project team; set up folder structures or task boards.

Request body

{
  "webhookId": "7930960d-66c4-4db0-8f73-cb0564fa854b",
  "timestamp": "2024-10-18T07:32:46.3737922Z",
  "topic": "ProjectCreatedV1",
  "officeId": 1,
  "officeInternalName": "[Office Name]",
  "officeExternalReference": "[Office External Reference]",
  "projectId": 1,
  "projectNo": "[Project No]",
  "projectName": "[Project Name]"
}

PROJECT STATUS CHANGED

Triggered when the status of a project changes. Possible values: Pending (1), Confirmed (2), Finished (3), Cancelled (4).

Common uses: when a project is confirmed, trigger invoicing or send a welcome pack; when finished, archive records and send a customer satisfaction survey; when cancelled, release resources and update your CRM.

Request body

{
  "webhookId": "ae8532f2-b332-4161-943e-25fdc8d9f7e8",
  "timestamp": "2024-10-18T07:33:04.8506613Z",
  "topic": "ProjectStatusChangedV1",
  "officeId": 1,
  "officeInternalName": "[Office Name]",
  "officeExternalReference": "[Office External Reference]",
  "projectId": 1,
  "projectNo": "[Project No]",
  "projectName": "[Project Name]",
  "oldStatus": 1,
  "oldStatusText": "Pending",
  "newStatus": 2,
  "newStatusText": "Confirmed",
  "customerId": 1,
  "customerName": "[Customer Name]",
  "customerExternalReference": "[Customer External Reference]"
}

PING

Sends a minimal payload with no event data. Use this to confirm your endpoint is reachable and correctly configured before subscribing to live events.

Request body

{
  "webhookId": "ab744426-839a-4d4d-97aa-514e06870bb8",
  "timestamp": "2024-10-18T07:32:30.3857483Z",
  "topic": "PingV1"
}
Did this answer your question?