Skip to content
This page View Markdown Open in ChatGPT Open in Claude

Emit event

Emits an event of the account : its listeners run with the data, and the call answers what they returned.

Method POST
URL /api/system-api/admin/emit-event : admin is the user path of your account
Body { name, eventData?, executeListeners? } or an array of them
Answer data : the event with outputArr, one entry per listener
From code g.sys.system.emitEvent

The call

Body
{ "name": "order-placed", "eventData": { "order_no": 1001 }, "executeListeners": [ "send-invoice" ] }
Answer
{
    "success": true,
    "statusCode": 200,
    "data": { "name": "order-placed", "eventData": { "order_no": 1001 }, "executeListeners": [ "send-invoice" ], "outputArr": [ { "listenerName": "send-invoice", "output": { "notified": true } } ] }
}
Body : several events
[
    { "name": "order-placed", "eventData": { "order_no": 1001 } },
    { "name": "stock-changed", "executeListeners": [ "sync-warehouse", "alert-low-stock" ] }
]
  • executeListeners names the listeners to run ; absent, every listener of the event runs.
  • A chain which comes back to an event already running is stopped : no infinite loop.

From code

const result = await g.sys.system.emitEvent('order-placed', { order_no: 1001 }, [ 'send-invoice' ]);
g.logger.log(result.outputArr);

Access and settings

  • Over HTTP, a system API answers once its settings give it apiAccessType: TOKEN_ACCESS (the token of an API user whose group grants this system API, in x-am-authorization) or IS_PUBLIC. Without settings it is NO_ACCESS : your code calls it through g.sys, the admin panel tests it, and an HTTP call is refused. The group must also grant the event.
  • The settings can also cache the answer or require person tokens (authProviders) ; pre and post hooks run around it like around any API.
  • The request headers apply : x-am-response-case, x-am-content-type-response, x-am-internationalization, x-am-tenant-username…

Errors

Code When
400 The body is wrong : the message names the missing or invalid key.
401 No valid API user token, or the API is NO_ACCESS : You are not authorized to access this API.
403 No group grants this system API.