DealHub
DealHub is a quote-to-cash platform that unifies CPQ (Configure, Price, Quote), CLM (Contract Lifecycle Management), subscription management, and revenue recognition. Sales teams drive quotes through a guided-selling Playbook, and the final output can be a document (PDF, Word, Excel) or an interactive DealRoom with e-signature.
The Willow DealHub connector exposes DealHub's Quote, Headless Quoting, Version, Product Catalog, Playbook, and User APIs as MCP tools — letting your AI assistants retrieve and generate quotes, manage opportunities, simulate pricing, track DealRoom signatures, and look up versions, products, and users directly from chat or your agentic workflows.
Authentication Types
DealHub supports 2 authentication methods through this connector. Both use a secret DealHub Authentication Token (a Bearer token) sent in the Authorization header.
-
API Key — A single shared DealHub Authentication Token used for all users.
- Pros: Simple setup, works for unattended / server-to-server workflows.
- Cons: One credential shared across all users (no per-user attribution).
-
API Key (per user) — Each user supplies their own DealHub Authentication Token.
- Pros: Per-user attribution; each user acts with their own token and permissions.
- Cons: Every user must generate and paste their own token.
The same DealHub Authentication Token works across DealHub's Quote, Version, User, Pricing, Generate Quote/Actions, and Partner APIs.
Configuration
Before using the connector, set:
- API Base URL — Your DealHub instance base URL (no trailing slash). Defaults to
https://api.dealhub.io. Use your region-specific instance if applicable (for examplehttps://service-eu1.dealhub.io).
Generating an API Key
The DealHub Authentication Token is generated by a CPQ administrator.
-
Sign in to DealHub as a CPQ administrator
-
Go to Control Panel → System Settings → API Settings
- Click Add to generate a new DealHub Authentication Token
-
Copy the token immediately
warningThe token is shown only once. If you lose it, you must generate a new one.
-
In Willow, go to Integrations → New → Built-in → DealHub → Use
-
Under Authentication Type, select API Key (or API Key (per user) to have each user paste their own token)
-
Paste the DealHub Authentication Token
-
Under Configuration, set the API Base URL (defaults to
https://api.dealhub.io; use your region-specific instance if applicable) -
Click Save Changes, then Connect
Available Tools
The connector ships with the following tools:
- Quote Management —
Get Quote,List Quotes,Get DealHub Quote ID,Get Quote Document,Create Opportunity,Get DealRoom Signers - Headless Quoting —
Simulate Quote,Generate Quote,Submit Quote,Publish Quote,Sign Quote Externally - Versions —
List Versions,Get Version by ID,Get Version by Name - Product Catalog —
Get Version Products,Get Products by SKU - Playbook —
Get Playbook Data,Get Generate Quote Template - Users —
List Users,Get User by ID,Get User by Login,Create or Update Users - Async —
Get Async Request Status
Key Concepts
- CRM-governed — DealHub operates as a satellite to your primary CRM. Many calls rely on identifiers that originate there, such as
external_opportunity_idandexternal_customer_id. - Version-based configuration — Products, pricing, and API configuration are encapsulated within a Version. Many calls operate in the context of a specific
version_id(or the currently active version). - Asynchronous operations —
Generate Quote,Submit Quote,Publish Quote,Sign Quote Externally, and version/catalog operations run in the background and return a tracking id. PollGet Async Request Statusto check progress.
Common Use Cases
Retrieve a full quote
- Use List Quotes with
external_opportunity_idto find the quote linked to a CRM opportunity - Use Get Quote with the
dealhub_quote_idandfeature=allto fetch the complete quote (line items, answers, approvals, summary, DealRoom info) - Use Get Quote Document to download the PDF/Word output for a submitted quote
Simulate pricing without saving
- Use List Versions (filter by
ACTIVE) to find theversion_id - Use Simulate Quote with the
version_idand either anexternal_opportunity_idorgeo_code+currency, plusquote_dataandline_items
Generate a quote end to end
- Use Get Generate Quote Template for the target version + playbook to get the exact
quote_dataandline_itemsstructure - Use Generate Quote with
external_opportunity_id,request_action(draft/submit/publish/sign_externally),document_type, and the filled template - Poll Get Async Request Status with the returned request id until it is
done - Use Get DealRoom Signers to track signatures once the quote is published
Renewal automation
- Use Create Opportunity to create the opportunity in DealHub (owner, currency, customer)
- Use Generate Quote referencing the new opportunity
Troubleshooting
403 Unauthenticated / Forbidden
Requests fail with 403.
Cause: The DealHub Authentication Token is missing, invalid, or was revoked.
Solution:
- Confirm the token is pasted correctly in Willow (no extra spaces).
- Generate a fresh token in DealHub under Control Panel → System Settings → API Settings.
- Reconnect the integration in Willow.
Wrong instance / DNS or 404 errors
Requests fail to reach DealHub or return unexpected 404s.
Cause: The API Base URL points at the wrong DealHub instance.
Solution:
- In Willow, open the DealHub integration → Configuration.
- Set the API Base URL to your instance (for example
https://api.dealhub.ioor your region-specific host likehttps://service-eu1.dealhub.io), with no trailing slash.
400 Bad Request on Get Quote Document
Cause: The quote is still a Draft (documents are only available for submitted quotes), or the requested document_type isn't enabled for that quote's playbook.
Solution:
- Confirm the quote has been submitted/generated.
- Omit
document_typeto get the format the salesperson originally generated, or enable the desired format for the playbook in DealHub CPQ settings.
400 Bad Request on Simulate Quote
Cause: Both external_opportunity_id and (geo_code + currency) were provided, or quote_data was omitted.
Solution:
- Provide either
external_opportunity_idor bothgeo_codeandcurrency— not both. - Always include
quote_data(send[]if there are no answers).
Asynchronous action seems to have no effect
Cause: Generate Quote, Submit Quote, Publish Quote, and Sign Quote Externally are asynchronous — a 202 response only confirms the action was accepted.
Solution:
- Use Get Async Request Status with the returned request id to confirm completion.
- Verify the quote is in a valid state for the action (for example, a quote must be
Ready to be sentorPublishedbefore it can be signed externally).
Additional Resources
Need Help?
If you encounter issues not covered in this guide, please contact Willow support with:
- The exact error message and HTTP status code
- The tool you were using (e.g., Generate Quote)
- Your DealHub instance base URL