Skip to main content

Webhook events and payload reference

Every webhook event ManyRequests sends, when it fires, and the fields in each payload.

Written by Gabriel Lecointere

This is the full list of webhook events ManyRequests can send, with the data each one includes. To create a webhook, see How to use webhooks.

Use case: you're building an automation in Make, n8n, Zapier or your own code and need to know which event to pick and which fields you can map, without triggering test events first.

How webhooks are sent

  • Each webhook listens to one event. In Settings > Integrations > Webhooks, pick it under Webhook event. The list shows event names in capitals, for example REQUEST CREATED. The payloads and the API use the lowercase name, for example request_created.

    Add webhook window with the Webhook event list open
  • ManyRequests sends an HTTP POST with a JSON body (Content-Type: application/json) shortly after the event happens.

  • Webhooks are not signed. There's no signature header to check, so use a long, hard-to-guess URL and keep it private.

  • If your URL doesn't answer within 3 seconds or returns an error, ManyRequests retries, up to 3 attempts in total, waiting longer between each.

  • Dates use ISO 8601 format. Fields can be null when there's no value.

  • You can also list, create and delete webhooks with the API (/api/v1/webhooks). Webhooks created through the API need an https URL.

All events

Event

Sent when

client_created

A new client is added.

client_updated

A client's details change.

organization_updated

An organization's details change.

brand_created

A new brand is created.

request_created

A request is submitted. A queued request is sent when it leaves the queue.

request_updated

A request changes, for example its status, title, due date, assignees or tags.

request_assignees_changed

Team members are assigned to or removed from a request.

request_tag_added

A tag is added to a request. One webhook call per tag.

request_tag_removed

A tag is removed from a request. One webhook call per tag.

comment_created

A comment is posted on a request, including internal comments and scheduled comments when they go out.

canvas_comment_created

Someone comments on a file (an annotation).

review_created

A client reviews a request.

payment_created

An invoice is issued: created or saved with a status other than draft, or a draft is sent. It can be sent again when an issued invoice is edited.

subscription_created

A subscription starts.

subscription_canceled

A subscription is canceled.

subscription_set_to_cancel_at_period_end

A subscription is set to cancel at the end of its current period.

subscription_paused

A subscription is paused.

subscription_resumed_from_pause

A paused subscription resumes.

subscription_updated

A subscription's status, price, cancellation, pause or period end changes.

Payload fields

Clients, organizations and brands

Event

Fields

client_created

id, name, email, created_at, organization (organization name)

client_updated

Same as client_created, plus updated_at

organization_updated

id, name, created_at, updated_at, owner_name, owner_email

brand_created

id, name, uuid, logo, created_at, updated_at, organization, custom_fields (brand fields by title, each with value and type)

Requests

Event

Fields

request_created

id, number, title, slug, description, priority (low, medium or high), created_at, due_date, url, status, service, client_name, client_email, organization, organization_tags, assignees (name and email), attachments (file URLs), attachment_files (name and URL), custom_fields (form answers by question, with value and type), form (form answers by question, value only), tags, custom_dropdown (label, value, color, or null)

request_updated

Same as request_created, plus updated_at. The payload is the request as it is now; it doesn't say which field changed.

request_assignees_changed

id (unique per change), assigned_users, unassigned_users, all_assignees (each with name and email), request_id, request_number, request_title, request_slug, request_url, request_status, request_service, request_priority, request_tags, request_due_date, client_name, client_email, organization, organization_tags, created_at, assigned_by_name, assigned_by_email

request_tag_added, request_tag_removed

id (unique per change), tag_id, tag_name, request_id, request_number, request_title, request_slug, request_url, request_status, request_service, request_priority, request_tags, request_due_date, client_name, client_email, organization, organization_tags, created_at, changed_by_name, changed_by_email

Comments and reviews

Event

Fields

comment_created

id, is_internal, created_at, content (plain text), html_content, attachments (file URLs), attachment_files (name and URL), request_priority, request_id, request_title, request_slug, request_url, request_number, request_tags, assignees, client_name, client_email, organization, organization_tags, commenter_name, commenter_email, commenter_role

canvas_comment_created

id, canvas_thread_id, created_at, content, is_resolved, attachment (URL of the file commented on), attachment_name, request_id, request_title, request_slug, request_url, request_number, request_tags, assignees, client_name, client_email, organization, organization_tags, commenter_name, commenter_email, commenter_role

review_created

id, rating, comment, created_at, request (id, title, slug, description, service, number, created_at), assignees (id, name, email), user (the client: id, name, email), organization (id, name)

Check is_internal before you forward a comment anywhere your client can see it.

Payments

Event

Fields

payment_created

id, user_id, number, status, payment_reference, notes, paid_at, created_at, amount, currency, service (first line item), payment_method, client_name, client_email

payment_created describes an invoice, paid or not. Use status and paid_at to tell whether it has been paid.

Subscriptions

Every subscription event includes price, currency, period (billing period name), service_id, service_name, client_id, client_name, client_email and organization, plus:

Event

Extra fields

subscription_created

id, status, created_at, stripe_subscription_id, current_period_ends_at

subscription_canceled

id, status, canceled_at, cancel_at_period_end, cancelation_reason, feedback

subscription_set_to_cancel_at_period_end

id, status, cancel_at_period_end, cancelation_reason, feedback, end_date

subscription_paused, subscription_resumed_from_pause

id, status, paused, pause_collection, current_period_ends_at

subscription_updated

id, status, paused, pause_collection, current_period_ends_at, changes

In subscription_updated, changes lists only what changed, each with from and to. Possible keys: status, pricing_variation_id (the price or plan changed), cancel_at_period_end, canceled_at, pause_collection and current_period_ends_at (the subscription renewed).

Example payloads

client_created

{"id": 42, "name": "John Doe", "email": "[email protected]", "created_at": "2026-10-02T09:15:00.000000Z", "organization": "ACME Corp."}

request_tag_added

{"id": "1031_4_1790932500", "tag_id": 4, "tag_name": "Urgent", "request_id": 1031, "request_number": 1031, "request_title": "Homepage banner", "request_slug": "homepage-banner-abc123", "request_url": "https://youragency.manyrequests.com/requests/homepage-banner-abc123", "request_status": "In progress", "request_service": "General Request", "request_priority": "high", "request_tags": ["Urgent"], "request_due_date": null, "client_name": "John Doe", "client_email": "[email protected]", "organization": "ACME Corp.", "organization_tags": [], "changed_by_name": "Alex Rivera", "changed_by_email": "[email protected]", "created_at": "2026-10-02T09:15:00+00:00"}

subscription_updated (price change)

{"id": 18, "status": "active", "price": 1500, "currency": "usd", "period": "Monthly", "service_id": 2, "service_name": "Design Subscription Pro", "client_id": 42, "client_name": "John Doe", "client_email": "[email protected]", "organization": "ACME Corp.", "paused": false, "pause_collection": null, "current_period_ends_at": "2026-11-02T00:00:00+00:00", "changes": {"pricing_variation_id": {"from": 3, "to": 5}}}

Values are examples. Test with a real event to see the exact formats from your portal.

Related

Did this answer your question?