Skip to main content
Glama
SalesSuite MCP Server

SalesSuite MCP Server

Official

Create Webhook Subscription

create_webhook_subscription

Register a webhook subscription that sends a POST payload to your HTTPS URL when a CRM event occurs. Reuse of an identical subscription returns the existing one instead of duplicating.

Instructions

Create Webhook Subscription.

Registers a webhook subscription. Registering an identical subscription (same hookUrl, event type, and filter) does not create a duplicate: the existing subscription is returned, and a deactivated one is reactivated.

Delivery: When the selected event happens, the application sends a POST request to hookUrl with the related payload in the request body.

Payload types:

Event Type

Payload Type

contact.propertyChanged

WebhookContactPropertyChangedPayload

deal.propertyChanged

WebhookDealPropertyChangedPayload

deal.stageChanged

WebhookDealStageChangedPayload

activity.created

WebhookActivityCreatedPayload

form.submitted

WebhookFormSubmittedPayload

contact.created

WebhookContactCreatedPayload

deal.created

WebhookDealCreatedPayload

actionButton.executed

WebhookActionButtonExecutedPayload

Filters: Supported filter fields and matching behaviour depend on the selected event type.

Input Schema

NameRequiredDescriptionDefault
bodyYesWebhook subscription. Call `describe_webhook_event` with the event type first to get the filter schema and payload format.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, openWorldHint=true, destructiveHint=false, idempotentHint=false, but the description adds substantive behavior beyond them: the dedup/reuse rule, the fact that a deactivated subscription is reactivated, and the outbound POST delivery with payload in the body. That reactivation is a real state side effect and is disclosed clearly. Auth/scopes and rate limits are not covered, and the 'no duplicate created' claim sits in mild tension with idempotentHint=false, though reactivation justifies the non-idempotent flag rather than contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the dedup rule and delivery semantics before the reference tables, which is the right ordering. The opening pair of sentences restates the title verbatim before saying anything new, and the eight-row payload table is bulky but each row carries distinct information an agent may need.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, nested-body mutation with no output schema, the description covers the creation semantics, the delivery mechanism, and the event-to-payload mapping. It leaves the return shape (what fields the subscription object has) undescribed and does not restate the prerequisite of resolving event-specific filter schemas, though the input schema carries that instruction.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline would be 3, but the description adds real meaning by mapping each event type to its concrete payload type and by noting that filter fields and matching behavior are event-type dependent. It does not add anything about hookUrl beyond the schema's URI/publicly-reachable constraint, and the filter section stops short of the shape (which it correctly defers elsewhere).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Registers a webhook subscription') and immediately characterizes the operation's dedup semantics, which distinguishes it from update_webhook_subscription and get_webhook_subscription. It does not explicitly say 'use update_webhook_subscription to modify an existing one,' so sibling differentiation is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied: it tells you an identical (hookUrl, type, filter) triple collapses into the existing subscription, which implicitly tells an agent when creation is a no-op. However, there is no explicit 'use this instead of X when Y' guidance versus update_webhook_subscription, and the crucial prerequisite of calling describe_webhook_event first appears only in the schema, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.