Please enable JavaScript to view this site.

QuoteWerks Help
Version 26 (Build 2.10) 
April 9, 2026
  •      

To quickly begin configuring a webhook see the following help file:

Enabling a Webhook

Configuring a Webhook with Google Chat

 

The following topics are included in this help file:

Overview

Getting Started

Creating Webhooks

Events

Macros

Event-Specific Macros

HTTP Configuration

Custom Headers

Body Templates

Testing Webhooks

Viewing Logs

Troubleshooting

 

Overview

QuoteWerks Webhooks allow you to receive real-time notifications when events occur in your QuoteWerks system. When an event happens (like a quote being accepted), the webhook system automatically sends an HTTP request to your specified URL with details about the event.

To access the QuoteWerks Webhooks interface navigate to https://webhooks.quotewerks.com

Use Cases:Integrate with CRM systems, trigger automated workflows, sync data with external applications, send notifications to Slack or Teams, update databases, and more.

Getting Started

To create your first webhook:

1.Click the Add New button on the Webhooks page

2.Give your webhook a friendly Name (optional but recommended)

3.Select the event you want to listen for

4.Enter the URL where you want to receive notifications

5.Configure the HTTP method and body content

6.Click Save

 

Tip:Use webhook.site to quickly test your webhooks. It provides a free URL that captures and displays all incoming requests.

 

Creating Webhooks

 

Basic Information

When creating a webhook, you'll need to provide:

Field

Description

Name

A friendly name to help you identify this webhook (e.g., "Slack Quote Notification" or "CRM Sync"). This is optional but recommended when you have multiple webhooks.

Event

The event that triggers this webhook (e.g., QuoteValet.Accepted)

Method

HTTP method: GET, POST, PUT, PATCH, or DELETE

URL

The endpoint URL to send the webhook request to

Headers

Optional custom HTTP headers to include

Body Content Type

The format of the request body (JSON, XML, etc.)

Body

The request body template with macro placeholders

Enabled

Toggle to enable/disable the webhook without deleting it

 

 

Events

Events are organized by context (e.g., QuoteValet, QuoteWerks) and specific event name. The full event name follows the pattern: Context.EventName

 

Wildcard Events

Each context has a special *.ANY event that triggers for all events within that context. For example, QuoteValet.ANY will fire for QuoteValet.Accepted, QuoteValet.Viewed, and all other QuoteValet events.

 

Note:When using wildcard events, consider using the {{System.EventName}} macro in your body to identify which specific event triggered the webhook.This is extra information for those interested in learning more. Sample text Sample text Sample text Sample text Sample text Sample text Sample text Sample text Sample text Sample text Sample text Sample text Sample text Sample text Sample text

 

Macros

Macros are placeholders that get replaced with actual values when the webhook fires. They use the format {{MacroName}} and can be used in URLs, headers, and the body.

 

For a full list of available macros please see the Webhook Macros help file.

 

System Macros

These macros are available for all events:

Macro

Description

Example Value

{{System.EventFullName}}

The full event name including context

QuoteValet.Accepted

{{System.EventContext}}

The context portion of the event

QuoteValet

{{System.EventName}}

The event name without context

Accepted

{{System.TenantAccountNumber}}

Your tenant account number

Aspire001

{{System.EventDateTime}}

When the event occurred (ISO 8601)

2026-01-08T18:30:00.000Z

 

 

Event-Specific Macros

Each event type has its own set of macros based on the data available. When you select an event in the webhook editor, the available macros are shown in the macro search fields.

Example - QuoteValet.Accepted:

{{QuoteValet.Document.Headers.quoteValetDocumentID}}

{{QuoteValet.Acceptance.AcceptedByName}}

{{QuoteValet.Acceptance.AcceptanceTotal}}

 

Using the Macro Inserter

 

Above each field that supports macros, you'll find a search box to find and insert macros:

1.Type in the search box to filter available macros

2.Click on a macro to insert it at your cursor position

3.Use Ctrl+M while in a field to jump to its macro search

 

HTTP Configuration

 

HTTP Methods

 

Method

Typical Use

Has Body

POST

Create new resources, most common for webhooks

Yes

PUT

Update/replace a resource

Yes

PATCH

Partial update to a resource

Yes

GET

Retrieve data (data passed via URL)

No

DELETE

Remove a resource

No

 

Body Content Types

 

Content Type

Description

application/json

JSON format - most common for modern APIs

application/xml

XML format - for legacy systems

text/plain

Plain text

application/x-www-form-urlencoded

Form data format

None

No body (for GET/DELETE requests)

 

Custom Headers

 

You can add custom HTTP headers to your webhook requests. Common uses include:

Authentication: API keys, bearer tokens

Identification: Custom headers to identify the source

Routing: Headers used by the receiving system

 

Tip:Headers also support macros! You can include dynamic values in header values using the same {{MacroName}} syntax.

 

Example Headers

 

Authorization: Bearer your-api-key-here
X-Webhook-Source: QuoteWerks
X-Tenant-ID: {{System.TenantAccountNumber}}

 

 

Body Templates

The body template defines what data is sent when the webhook fires. Click the magic wand button to generate a template with common macros for your selected event.

JSON Example

{
  "eventContext": "{{System.EventContext}}",
  "eventName": "{{System.EventName}}",
  "tenantAccountNumber": "{{System.TenantAccountNumber}}",
  "eventDateTime": "{{System.EventDateTime}}",
  "quoteValetDocumentID": "{{QuoteValet.Document.Headers.quoteValetDocumentID}}",
  "acceptedByName": "{{QuoteValet.Acceptance.AcceptedByName}}"
}

 

XML Example

<?xml version="1.0" encoding="UTF-8"?>
<webhook>
  <event>{{System.EventName}}</event>
  <tenant>{{System.TenantAccountNumber}}</tenant>
  <documentId>{{QuoteValet.Document.Headers.quoteValetDocumentID}}</documentId>
</webhook>

 

 

Testing Webhooks

Before relying on your webhook in production, you should test it to ensure it's configured correctly.

 

Using the Test Feature

1.Open the webhook you want to test (click the edit button)

2.Click the Test button in the modal

3.Review the pre-populated values - macros are replaced with sample data

4.Modify any values as needed for your test

5.Click Test to send the request

6.Check the Logs tab to see the result

 

Using webhook.site

webhook.site is a free service that provides a unique URL to capture webhook requests. It's perfect for testing:

1.Visit webhook.site

2.Copy your unique URL

3.Use this URL as your webhook destination

4.Test your webhook and view the results on webhook.site

 

Tip:If your webhook URL is a webhook.site URL, a convenient "Open webhook.site" button appears in the test modal to quickly view results.

 

Viewing Logs

The Logs tab shows the history of all webhook deliveries, including:

Status: Success, Failed, or Pending

Event: Which event triggered the webhook

URL: The destination URL

Response: HTTP status code and response body

Timestamp: When the delivery was attempted

 

Filtering Logs

Use the filter options to narrow down the log entries by event, status, or URL.

 

Troubleshooting

 

Webhook Not Firing

Ensure the webhook is enabled (toggle should be on)

Verify the event name matches exactly

Check that the tenant account number is correct

 

Receiving Errors

Check the Logs tab for error details

Verify the destination URL is accessible

Ensure headers and authentication are correct

Validate your JSON/XML body is well-formed

 

Macros Not Replaced

 

Ensure the macro syntax is correct: {{MacroName}}

Verify the macro name matches exactly (case-sensitive)

Check that the event provides the data for that macro

 

Common HTTP Status Codes

 

Code

Meaning

Action

200

Success

Webhook delivered successfully

400

Bad Request

Check your body format

401

Unauthorized

Check authentication headers

404

Not Found

Verify the URL is correct

500

Server Error

Issue with the receiving server