Netomi · AsyncAPI Specification

Netomi Events

Version

View Spec View on GitHub CompanyArtificial IntelligenceAgentic AICustomer ExperienceCustomer ServiceCustomer-SupportConversational AIChatbotsChatVoiceTelephonySDKMobileAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-01'
method: searched
source: openapi/netomi-agentdesk-openapi.json + https://github.com/msgai/netomi-chat-ios/blob/main/docs/events-and-auth.md
spec_type: null
asyncapi_published: false
note: |
  Netomi publishes no AsyncAPI document — /asyncapi.yaml, /asyncapi.json and the
  GitHub org were all checked and none exists. It does have a large, real event
  surface in three parts, captured below: (1) sixteen INBOUND channel webhook
  endpoints enumerated in the live AgentDesk OpenAPI at
  https://api.netomi.com/v3/api-docs, (2) a webhook-event trigger and history API, and
  (3) a bidirectional client event bus in the first-party Mobile Chat SDKs. Nothing
  here is fabricated; every endpoint below is a verified operationId in the harvested
  spec. There is still no public catalogue of OUTBOUND platform webhooks (payload
  schemas, signing, retries) — that surface, if it exists, lives behind the gated
  Agentic Studio documentation.
webhooks:
  inbound:
    description: Netomi exposes a per-partner inbound webhook endpoint that a helpdesk
      platform calls to hand conversation events to the Netomi AI agent. The Gladly
      integration is the publicly documented instance.
    endpoints:
    - partner: Gladly
      url: https://api.netomi.com/v1/gladly/webhook
      direction: partner -> netomi
      events: [conversation open, conversation close, conversation status change,
        contact update]
      configured_in: Gladly admin — create a webhook named for the Netomi instance and
        point it at the URL above
      source: https://help.gladly.com/docs/set-up-netomi-integration
    pattern: /v1/{partner}/webhook
    pattern_confidence: high
    pattern_note: Confirmed against the harvested OpenAPI — sixteen partner webhook
      endpoints follow this shape. Enumerated below with verified operationIds.
    catalog:
    - {partner: gladly, path: /v1/gladly/webhook, methods: [GET, POST],
       operations: [ping, conversationEngineAsync_7]}
    - {partner: zendesk, path: /v1/zendesk/webhook, methods: [POST],
       operations: [conversationEngineAsync_2]}
    - {partner: zendesk-chat, path: /v1/zendesk-chat/response, methods: [POST],
       operations: [getStructuredResponse],
       lifecycle_ops: [activate, deActivate, reActivate, checkStatusAll, pollResponse,
         publishToSocialOutbound]}
    - {partner: zoho, path: /v1/zoho/webhook, methods: [GET, POST],
       operations: [subscribe, conversationEngineAsync_1],
       scoped_path: '/v1/zoho/webhook/{botRefId}'}
    - {partner: salesforce, path: /v1/salesforce/webhook, methods: [POST],
       operations: [conversationEngineAsync_5, getResponse_6, postResponse_1]}
    - {partner: freshdesk, path: /v1/freshdesk/webhook, methods: [POST],
       operations: [conversationEngineAsync_8]}
    - {partner: helpshift, path: /v1/helpshift/webhook, methods: [POST],
       operations: [conversationEngineAsync_6, helpShiftQuickReply]}
    - {partner: sprinklr, path: /v1/sprinklr/webhook, methods: [POST],
       operations: [conversationEngineAsync_4, postResponse]}
    - {partner: sunshine-conversations, path: /v1/sunshine-conversations/webhook,
       methods: [POST], operations: [conversationEngineAsync_3]}
    - {partner: facebook, path: /v1/facebook/webhook, methods: [GET, POST],
       operations: [subscribe_2, messagesPost_3],
       verification_params: ['hub.mode', 'hub.challenge']}
    - {partner: twitter, path: '/v1/twitter/webhook/{appId}', methods: [GET, POST],
       operations: [subscribe_1, messagesPost_2], verification_params: [crc_token]}
    - {partner: google-assistant, path: /v1/google/assistant/webhook, methods: [POST],
       operations: [googleAssistantPost]}
    - {partner: firebase, path: /v1/firebase/messages, methods: [GET, POST],
       operations: [getResponse_2, conversationEngineAsync_9]}
    - {partner: agentdesk, path: /v1/agentdesk/webhook, methods: [POST],
       operations: [conversationEngineAsync_11, submitForm, getResponse_7, postResponse_2]}
    - {partner: singtel, path: /v1/facebook/webhook/singtelRoamingActivation/updateTolerancePriorityCost,
       methods: [POST], operations: [updateTolerancePriorityCost]}
    - {partner: generic, path: /v1/webhook, methods: [POST],
       operations: [messagesPost, messagesPost_1, event, message]}
    verification_note: The Facebook (hub.mode / hub.challenge) and Twitter (crc_token)
      subscription handshakes are declared as query parameters, matching those
      platforms' standard webhook verification. No signature-verification scheme is
      declared for Netomi's own inbound endpoints.
  outbound:
    published: false
    trigger_api:
      operation: triggerWebHookEvent
      http: POST /v2/webhook/event
      body: 'WebHookEventRequest {linkId, payload}'
      note: Netomi exposes an API to TRIGGER a webhook event on a link, but publishes
        no catalogue of the resulting outbound event types, no payload schemas, no
        signing scheme and no retry policy.
    history:
      operations: [getConversationHistory, getConversationHistory_1]
      http: 'GET /v2/webhook/history/{conversationId}, GET /v1/webhook/history/{conversationId}'
      params: [numberOfDays, numberOfMessages, timestamp]
    retry_schema: RetryHistory
    retry_note: A RetryHistory component schema exists in the spec, implying delivery
      retry, but no retry policy is documented.
sdk_event_bus:
  transport: in-process (native SDK callback bridge)
  platforms: [ios, android, react-native]
  sdk_to_app:
    api: getEventUpdatesFromSDK
    envelope:
      eventType: string (NCWPublicEvent raw value)
      eventData: object
      note: For customEvent the real event name is nested inside eventData under the
        same eventType key, not on the outer envelope.
    events:
    - name: chatSdkInitialised
      description: SDK finished initialising.
    - name: chatOpened
      description: The chat UI was presented to the user.
    - name: reauthorizationRequest
      description: The session's JWT needs refreshing; the host app must re-authenticate
        and answer with reauthorizationSuccess or reauthorizationFailure.
    - name: reauthorizationResponse
      description: Acknowledgement that a reauthorization answer was received.
    - name: error
      description: Runtime SDK failure. Detail is carried under the error_details key
        inside eventData.
    - name: customEvent
      description: Bot-driven custom event raised from a Netomi bot flow (documented
        example, CALLBACK_EVENT).
  app_to_sdk:
    api: sendEventToSdk(type:eventName:jwt:data:)
    events:
    - name: reauthorizationSuccess
      jwt: required
      payload_example: {conversation_id: '12345'}
      description: Reauthorization completed; supply a fresh JWT.
    - name: reauthorizationFailure
      jwt: optional
      payload_example: {reason: user_cancelled}
      description: Reauthorization failed.
    - name: custom
      jwt: optional
      requires: non-empty eventName
      reserved_names: [reauthorization_success, reauthorization_failure, custom]
      payload_example: {status: submitted, custom_attributes: {formId: feedback_form}}
      description: Vendor or app-specific event. Payload must be JSON-serializable.
push_notifications:
  supported: true
  transports: [FCM, APNs]
  api: setPushToken(_:) — call after initialize(...) and on every token refresh
  source: https://github.com/msgai/netomi-chat-ios/blob/main/docs/push-notifications.md
status_feeds:
  atom: https://status.netomi.com/history.atom
  rss: https://status.netomi.com/history.rss
  json: https://status.netomi.com/api/v2/summary.json
  note: Incident/maintenance event stream for the platform, served by Atlassian
    Statuspage.
gaps:
- No AsyncAPI document published.
- No outbound webhook catalogue, payload schemas, signature verification or retry
  semantics published.
- No message schemas for the SDK event bus beyond the documented key names.

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/netomi-events"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.