> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jelou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Observability - Node Events

> Configure tracking events on your nodes to feed your metrics and performance dashboards

**Observability** in Brain Studio lets you register tracking events directly from your node configuration, so you can understand how users interact at each point of your workflow. These events feed your metrics and performance dashboards.

## How does it work?

Node configuration panels such as **HTTP, SOAP, Code, Tool, Conditional, Skill, and AI Agent**, among others, include an **Events** tab. From there you can register up to **10 events per node**, each with its own name, emission condition, and custom properties.

When a node has events configured, you'll see a badge underneath it on the canvas summarizing the active events. If none are configured, the badge shows **"No active events"**.

## Configure an event

<Steps>
  <Step title="Open the Events tab">
    Select the node you want to instrument and go to its configuration panel. Next to the **General** tab you'll find the **Events** tab, titled **"Event configuration"**.
  </Step>

  <Step title="Add an event">
    Click **"Add event"** and fill in the **"Event name"** field. The name must be in **snake\_case** (for example, `payment_attempted` or `appointment_scheduled`); if it doesn't match that format, you'll see the error **"Must be snake\_case"**.
  </Step>

  <Step title="Add properties (optional)">
    Under **"Event properties"**, use **"Add field"** to include up to 5 key/value pairs. The value can be a dynamic variable, such as `{{$context.amount}}` or `{{$memory.customer_name}}`.

    <Tip>
      Check the available [Context Variables](/en/guides/variables/context) to see what data you can include in your event's payload.
    </Tip>
  </Step>
</Steps>

<Note>
  Limits per node: up to **10 events**, each with up to **5 properties**. Event and property names must be written in snake\_case.
</Note>

## Practical example

<AccordionGroup>
  <Accordion title="Successful payment event on a Tool node">
    You have a Tool node called **"Charge Payment"** that processes a charge. You configure an event like this:

    * **Event name**: `payment_attempted`
    * **When to register the event**: Success
    * **Event properties**:
      * `amount`: `{{$context.amount}}`
      * `method`: `{{$context.payment_method}}`

    Every time the node completes a charge successfully, this event is registered with the amount and payment method used, ready to be analyzed in your metrics.
  </Accordion>

  <Accordion title="Error event on an API node">
    You have an API node that queries an external system. You configure an event to catch failures:

    * **Event name**: `external_query_failed`
    * **When to register the event**: Error
    * **Event properties**:
      * `error_code`: `{{$context.statusCode}}`

    This lets you quickly identify how often and why that integration fails.
  </Accordion>
</AccordionGroup>

<Note>
  This capability is being rolled out progressively to companies in Brain Studio.
</Note>

## Related articles

<CardGroup cols={2}>
  <Card title="Brain Studio Nodes" icon="sitemap" href="/en/guides/nodos/introduction">
    Learn about all available node types and how to configure them.
  </Card>

  <Card title="Context Variables" icon="code" href="/en/guides/variables/context">
    Learn to use `$context` and other variables available during execution.
  </Card>

  <Card title="Your First Workflow" icon="comments" href="/en/guides/getting-started/tu-primer-workflow">
    Learn to build your first workflow from scratch.
  </Card>
</CardGroup>
