WooCommerce Webhook Integration

Subscriber Manager Pro registers a custom WooCommerce webhook topic called “Telegram Invite Links Generated.” When invite links are created for an order, WooCommerce delivers a JSON payload to any URL you configure. Use this to trigger automations in Make.com, n8n, Zapier, Pabbly Connect, or any webhook-capable platform.

This is separate from the Telegram bot webhook the plugin uses internally. The WooCommerce webhook is an outbound notification you control from your WooCommerce settings.

Requirements #

  • Subscriber Manager Pro (the webhook topic is a Pro feature)
  • The “Require Activation Step” setting must be disabled (webhooks fire during the direct invite flow when invite links are generated at checkout)

When Does the Webhook Fire? #

The webhook fires every time Telegram invite links are generated for an order. This happens when an order transitions to processing or completed status and the order contains a product linked to one or more Telegram channels or groups.

The webhook does not fire during the activation flow. It only fires when invite links are generated directly at checkout.

Setting Up the Webhook #

Step 1. In your WordPress admin, go to WooCommerce > Settings > Advanced > Webhooks.

Step 2. Click Add webhook.

Step 3. Configure the webhook:

  • Name: Give it a descriptive name (e.g., “Telegram Invites to Make.com”)
  • Status: Active
  • Topic: Select “Telegram Invite Links Generated” from the dropdown under “Action”
  • Delivery URL: Paste the webhook URL from your automation platform
  • Secret: Optionally set a secret for payload verification (recommended)

Step 4. Click Save webhook.

Step 5. Place a test order to verify the webhook fires and your automation receives the payload.

Payload Reference #

When the webhook fires, WooCommerce delivers this JSON payload to your delivery URL:

{
  "event": "wc_wctlgm_invite_links_generated",
  "order_id": 1234,
  "order_key": "wc_order_abc123",
  "status": "processing",
  "total": "29.00",
  "currency": "USD",
  "email": "customer@example.com",
  "customer_name": "Jane Smith",
  "phone": "+1 555 0100",
  "channels": [
    {
      "channel_id": "-1001234567890",
      "name": "My Private Channel",
      "invite_link": "https://t.me/+abc123xyz"
    }
  ],
  "timestamp": "2026-02-19 14:30:00"
}

Payload Fields #

FieldTypeDescription
eventstringAlways wc_wctlgm_invite_links_generated
order_idintegerThe WooCommerce order ID
order_keystringThe WooCommerce order key
statusstringOrder status at the time of firing (e.g., processing)
totalstringOrder total
currencystringThree-letter currency code
emailstringCustomer billing email
customer_namestringCustomer first and last name
phonestringCustomer billing phone
channelsarrayArray of channel objects (see below)
timestampstringDate and time the webhook fired

The Channels Array #

Each object in the channels array contains:

FieldTypeDescription
channel_idstringTelegram chat ID for the channel or group
namestringChannel or group name as configured in the plugin settings
invite_linkstringThe one-time use Telegram invite link generated for this customer

If a product is linked to multiple channels, the array contains one entry per channel.

Example Use Cases #

Make.com (formerly Integromat) #

Create a new scenario with a “Custom Webhook” trigger module. Copy the webhook URL into your WooCommerce webhook delivery URL field. Use the channels array to extract invite links and route them to other modules — for example, logging to Google Sheets, sending a custom SMS via Twilio, or updating a CRM contact record.

n8n #

Add a Webhook node as the trigger for your workflow. Set the HTTP method to POST. Copy the production webhook URL into your WooCommerce webhook delivery URL. Use subsequent nodes to parse the JSON payload and route the data to your downstream systems.

Zapier #

Create a new Zap with “Webhooks by Zapier” as the trigger (Catch Hook). Copy the webhook URL into your WooCommerce webhook delivery URL. Use the parsed payload fields in your action steps — for example, creating a new row in Airtable or sending a notification in Slack.

CRM Updates #

Use the email and customer_name fields to match or create contacts in your CRM. The channels array tells you which product areas the customer has access to, which you can map to CRM tags, segments, or deal stages.

Customizing the Payload #

Developers can modify the webhook payload using the wctlgm_webhook_payload filter. This filter runs before the payload is delivered to the webhook URL.

add_filter( 'wctlgm_webhook_payload', function( $payload, $order, $channels, $webhook_id ) {
    // Add a custom field to the payload
    $payload['membership_level'] = $order->get_meta( '_membership_level' );
    return $payload;
}, 10, 4 );

Parameters:

  • $payload (array) — The payload array
  • $order (WC_Order) — The WooCommerce order object
  • $channels (array) — The channels array
  • $webhook_id (int) — The WooCommerce webhook ID

For the full list of hooks and filters, see Hooks and Filters.

Troubleshooting #

The webhook fires but my automation does not trigger #

Check that the webhook status is set to Active in WooCommerce > Settings > Advanced > Webhooks. Verify the delivery URL is correct and accessible from the internet. Check WooCommerce > Status > Logs for delivery errors under the woocommerce-webhooks log source.

I don’t see “Telegram Invite Links Generated” in the topic list #

This topic is only available with Subscriber Manager Pro. Verify that the Pro version is installed and activated. If you recently installed Pro, try refreshing the webhooks page.

The payload is empty or missing fields #

Ensure the order contains a product with Telegram channels assigned in the product’s Telegram Access tab. The webhook only fires for orders that include products linked to channels or groups.

Frequently Asked Questions #

Q: Does this work with the activation flow?
A: No. The webhook fires when invite links are generated directly at checkout. When the “Require Activation Step” setting is enabled, invite links are generated later during bot activation, and the WooCommerce webhook does not fire at that point.

Q: Can I send the payload to multiple URLs?
A: Yes. Create multiple webhooks in WooCommerce, each with the same “Telegram Invite Links Generated” topic but different delivery URLs. Each webhook fires independently.

Q: Does the webhook fire on subscription renewals?
A: No. Renewal orders are detected and skipped — invite links are not re-issued on renewals, so the webhook does not fire.

Was this guide helpful?