Netomi · AsyncAPI Specification

Netomi Events

Version

View Spec View on GitHub CompanyArtificial IntelligenceAgentic AICustomer ExperienceCustomer ServiceCustomer SupportConversational AIChatbotsChatVoiceTelephonySDKsMobileAsyncAPIWebhooksEvents

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.