AgenticUniverse - Previously Formi
    AgenticUniverse - Previously Formi
    • Our Technical Note
      • Why Open AI is not Enough
      • How business Outcomes would Change Radically with AgenticUniverse
      • Our Research
        • STT - Nuances and Insights
        • Solving for STT Constraints
    • Generate Token
      • Login/Generate Token
        POST
    • Agent Configuration
      • Model Configuration
        • Configuration Helpers
          • Supported Providers
          • Supported Models
          • Supported Parameters
        • Get Model Configuration
        • Set Model Configuration
      • State Machine
        • Edge
          • Legacy
            • Create Edge
            • Edge Details
            • Update Edge
            • Delete Edge
          • Update edge properties
          • Get edge details
          • Delete an edge
          • Create an edge (transition) between two states
        • State
          • Create State from Template
          • Get State Information
          • Update State
          • Delete State
        • Get State Machine Structure
      • Prompt Templates
        • Get All Templates
        • Render Template
      • Tools
        • Get Tools List
        • Add Tool
        • Update Tool
        • Delete Tool
      • Get All Agents
        GET
      • Single Agent Details
        GET
      • Create Agent
        POST
      • Update Agent Details
        PUT
      • Enable Dashboard For An Outlet
        POST
      • Disable Dashboard For An Outlet
        POST
      • Get Call queue Sheet ID
        GET
    • Interactions
      • Pre-Interaction Context
        • Schedule an Interaction
        • Update an Interaction Id
        • Delete an Interaction Id
        • Clear all interactions
        • Get Summarized Interaction Info
      • Interaction Modalities
        • Video
          • Generation
            • Generate Welcome Video
        • Text
          • Start Interaction
          • Create Response
          • End Interaction
        • Voice
          • Connection Configuration
            • Quickstart
            • Connecting Twilio
            • Connecting Exotel
            • Formi WebSocket Configuration Guide
            • Create a New Connection Vendor
            • Get All Connection Vendors
            • Update a Connection Vendor
            • Delete a Connection Vendor
            • Get Agent's Connection Config
            • Add or Update Agent's Connection Config
      • Post Interaction Configuration
        • Email Destination Configuration
        • Variables CRUD
          • Get all required variables for the outlet with map
          • Modify variable definition for outlet
          • Add a new variable for the outlet
          • DELETE variable for outlet
          • Connect Variable to a destination
        • Destinations CRUD
          • Get all destinations for the outlet
          • Modify Destination for outlet
          • Add a new Destination for the outlet
          • DELETE Destinations for outlet
      • Get Interaction Summary
        GET
      • Resolve an Escalated Interaction
        POST
      • Get the Interaction list
        GET
      • Get Information regarding Single Interaction
        GET
    • Agent Utilisation
      • Get Credits Available
        GET
      • Interaction Utilisation
        GET
      • Model Utilisation
        GET
    • Webhooks
      • Get webhook URL
      • Update webhook URL
      • Get webhook metadata
      • Modify webhook metadata
      • Get reservation ingestion metadata
    • Untitled Endpoint
      POST

    Webhooks

    Overview#

    The Formi API Webhook enables downstream systems (e.g., CRM, dashboards, email notifiers) to receive real-time updates about the state of interactions handled by the Formi platform. This includes events from queue assignment to post-call analysis and dispatch.
    Formi sends these events via HTTP POST to a configured webhook URL associated with each outlet.

    Supported Event Types#

    All the possible events are defined below. Some events are system-internal and others are used for external webhook triggering.
    Event TypeDescription
    queue_addedInteraction has been added to the processing queue
    queue_updatedQueue status or position has been updated
    queue_clearedQueue has been cleared for this interaction
    interaction_triggerPre-processing trigger before call start
    interaction_startInteraction has started (e.g., bot/call begins)
    interaction_endInteraction has ended (normally or abnormally)
    interaction_analysedPost-interaction analysis has been completed (e.g., sentiment, outcome)
    post_interaction_dispatchedFinal data (e.g., metadata, transcript) has been dispatched to external systems
    post_call_endPost-dispatch cleanup/processing has finished (internal use)

    Webhook Behavior#

    HTTP Method: POST
    Timeout: 30 seconds per request
    Retries: Up to 3 attempts with exponential backoff (1s → 2s → 4s)
    Response Storage: Webhook responses (status code, headers, content) are saved in the interaction's metadata
    Delivery: Non-blocking; events are sent sequentially, but failure in one does not block others
    If the webhook fails after 3 retries, it is logged and flagged internally for manual follow-up.

    Webhook Request Payload#

    Each POST request includes the following structure:
    {
      "latest_event": "post_interaction_dispatched",
      "status": "ended",
      "data_to_publish": {
        "interaction_id":12354,
        "occasion": null,
        "customer_phone_number": null,
        "customer_name": null,
        "channel": null,
        "call_type": null,
        "enquiry_type": null,
        "enquiry_details": null,
        "timestamp_reservation": null,
        "call_status": null,
        "stakeholder_phone_who_picked": null,
        "is_manager_call": null,
        "booking_metadata": null,
        "call_transcript": [],
        "requirements": null
      }
    }
    latest_event: One of the values from the LatestEvent enum indicating the current state update.
    status: Status of the interaction (e.g., ended, queued, in_progress).
    data_to_publish: Context-specific data. Its structure varies by event , but always includes the interaction_id.

    Webhook Response#

    Formi expects a 2xx status code within 30 seconds. If this is not received, the webhook is retried up to 3 times. The final failure is recorded and appended to interaction.interaction_metadata["outlet_webhook_response"].
    Example Response:
    {
      "status": "success",
      "message": "Webhook received and acknowledged."
    }

    Example Integration Flow#


    Developer Notes#

    You can inspect the webhook response later via the Interaction Details API
    Currently the same webhook as the post_call webhook is used for the events. This means if the agent is already configured for post call webhooks , then this process needs to be only setup on the webhook consumer's end. Refer the Webhook Configuration for more details.

    Modified at 2025-07-04 12:01:35
    Previous
    Model Utilisation
    Next
    Get webhook URL
    Built with