View Categories

Webhook

Use the Webhook action to send an HTTP request from your Noem.AI chatbot to any external webhook endpoint. Configure the URL, method, headers, and the JSON payload (from Data Properties) so the bot can notify your systems or kick off automations when certain intents are detected.

What this action does #

  • Sends a POST/GET/PUT/DELETE request to a webhook URL.
  • Includes custom Headers (JSON) such as Content-Type, Authorization, or signatures.
  • Builds the request body or query string from Data Properties captured during the conversation.
  • Optionally displays the webhook’s response (e.g., confirmation ID, URL) back to the user.

Create the Webhook action #

  1. Open: Actions → Add → Webhook to open API / Webhook Integration.
  2. Name (required)
    A short function name you’ll reference in your bot’s Instructions.
    Example: send_support_webhook.
  3. Description (required)
    Precise guidance for when the AI should call this webhook and what information to collect.
    Example:
    “Call send_support_webhook when the user reports a product issue. Gather title, detailed description, priority, product area, and reporter email. Confirm before sending.”
  4. End Point(required)
    • Method: Choose POST (recommended) or another HTTP verb your receiver requires.
    • URL: Paste your webhook URL (e.g., https://hooks.example.com/support).

Headers (JSON)
Provide headers as a JSON object. Common examples:

{

  “Content-Type”: “application/json”,

  “Authorization”: “Bearer {{secrets.webhookToken}}”,

  “X-Source”: “noem-ai”

}

  1. Data Properties
    Define the fields you want sent in the payload (for POST/PUT) or as query parameters (for GET). For each property specify:
    • Name (JSON key)
    • Type (String, Number, Boolean, Array, Object)
    • Description (clear extraction rules for the AI)
    • Required (bot must collect it before the call)
  2. Use Add New Property to add more. AI Assistance can propose fields based on your Description.
  3. (Optional) Hide Function Log in Chat to suppress request logs in the transcript.
  4. Save the action.

Tip (quick debugging): Point End Point to https://webhook.site/ while configuring to see the exact payload the bot sends, then replace with your real URL.

Example configuration #

  • Name: send_support_webhook
  • Description:
    “Use when a user reports a bug or requests support. Collect: title, emailContent (detailed description with steps), priority (low|medium|high), productArea, and reporterEmail (use user.email if available). Confirm before sending.”
  • End Point: POST https://hooks.example.com/support

Headers (JSON):

{

  “Content-Type”: “application/json”,

  “X-Signature”: “{{hmacSignature}}”

}

  • Data Properties:
NameTypeDescriptionRequired
titleStringShort issue title (≤100 chars).
emailContentStringDetailed description including steps, expected vs. actual, and context.
priorityStringOne of low, medium, high.
productAreaStringModule/feature where the issue occurred.
reporterEmailStringUser’s email; default to {{user.email}} if present.
attachmentsArrayURLs to screenshots/files the user provided.


Sample POST body:

{

  “title”: “Checkout 500 error”,

  “emailContent”: “Steps: add item > Pay -> 500. Expected: success. Actual: 500.”,

  “priority”: “high”,

  “productArea”: “Checkout”,

  “reporterEmail”: “[email protected]”,

  “attachments”: [“https://files.noem.ai/f/abc123.png”]

}

Add decision rules in your bot’s Instructions #

Include explicit, testable logic so the AI knows when to call the webhook and what to gather:

When a user reports a bug or requests help, call function `send_support_webhook`.

Collect: title, detailed description (steps to reproduce), priority, product area, reporter email (use user.email if available), attachments (URLs).

Ask for confirmation: “Send this to support via webhook now?” If yes, call the function.

If any required field is missing after one follow-up, proceed and mark it as TBD.

If the webhook returns {ticketId, portalUrl}, present them to the user.

Where should we send your invitation to?