Events
When creating or interacting with conversations, the API responds with an NDJSON stream of events. This page summarizes the event types and how to use them.
Event Types
Event
type
Description
ConversationCreatedEvent
conversation-created
Contains the conversation_id
for subsequent calls.
UserMessageAvailableEvent
user-message-available
Present when initial_message
is provided; may represent a user message or an external event.
NewMessageEvent
new-message
Streaming message chunks from the agent (text or voice).
InteractionCompleteEvent
interaction-complete
Indicates the current interaction completed successfully.
ErrorEvent
error
Indicates an internal error; the interaction is rolled back.
CurrentAgentActionEvent
current-agent-action
Emitted only when the current_agent_action_type
query parameter is set.
Important Notes
Persist
conversation_id
fromconversation-created
.Continue reading until
interaction-complete
.Handle
error
events; nothing from that interaction is persisted.
Understanding Agent Actions
CurrentAgentActionEvent reveals agent behavior during generation.
Dynamic Behavior Triggered
Emitted when a dynamic behavior is triggered.
{
"type": "current-agent-action",
"action": {
"type": "dynamic-behavior-triggered",
"dynamic_behavior_set_version_info": ["<DYNAMIC-BEHAVIOR-SET-ID>", 3]
}
}
Use this as a trigger to evaluate metrics and drive business workflows.
System Integration Flow
Capture
dynamic_behavior_set_version_info
when the event appears.Map behavior IDs to the metrics you want to compute in your system.
Evaluate metrics and act (route, escalate, create tickets, store results).
Retrieve Dynamic Behavior Set Versions
Get the versions of a dynamic behavior set.
Permissions
This endpoint requires the following permissions:
DynamicBehaviorInstruction:GetDynamicBehaviorInstruction
for the dynamic behavior set to retrieve.
The ID of the dynamic behavior set.
^[a-f0-9]{24}$
The versions of the dynamic behavior set to retrieve. One can specify an exact version to retrieve, which is either the version number or latest
, which retrieves the latest version. Alternatively, one can specify a range of inclusive lower and upper bound for the version number separated by -
, and every version within the range would be retrieved.
1
The maximum number of dynamic behavior set versions to return.
10
The continuation token from the previous request used to retrieve the next page of dynamic behavior set versions.
0
The fields to sort the versions by. Supported fields are version
. Specify a +
before the field name to indicate ascending sorting and -
for descending sorting. Multiple fields can be specified to break ties.
[]
The Mongo cluster name to perform this request in. This is usually not needed unless the organization does not exist yet in the Amigo organization infra config database.
[]
Succeeded.
Invalid authorization credentials.
Missing required permissions.
Specified organization or dynamic behavior set is not found.
Invalid request path parameter or request query parameter failed validation.
The user has exceeded the rate limit of 1000 requests per minute for this endpoint.
The service is going through temporary maintenance.
GET /v1/{organization}/dynamic_behavior_set/{dynamic_behavior_set_id}/version/ HTTP/1.1
Host: api.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
X-ORG-ID: YOUR_API_KEY
Accept: */*
{
"dynamic_behavior_set_versions": [
{
"_id": "text",
"org_id": "text",
"created_at": "2025-10-11T15:10:49.305Z",
"updated_at": "2025-10-11T15:10:49.305Z",
"dynamic_behavior_set_id": "text",
"version": 1,
"conversation_triggers": [
"text"
],
"action": {
"type": "text",
"instruction": "text",
"overrides_instructions": true
}
}
],
"has_more": true,
"continuation_token": 1
}
Compute Metrics
Evaluate the specified metrics for the given conversation, optionally up to the specified interaction.
Permissions
This endpoint requires the following permissions:
Metric:EvaluateMetric
for the metrics.Metric:GetMetricEvaluationResult
for the metric results.
The Mongo cluster name to perform this request in. This is usually not needed unless the organization does not exist yet in the Amigo organization infra config database.
[]
The IDs of the metrics to evaluate.
The ID of the conversation to evaluate the metrics for.
^[a-f0-9]{24}$
If specified, only messages up to (and including) this interaction will be evaluated.
^[a-f0-9]{24}$
Succeeded.
The conversation has no interactions.
Invalid authorization credentials.
Missing required permissions.
Specified organization, conversation, interaction, or metric is not found.
Invalid request path parameter or request body failed validation.
The user has exceeded the rate limit of 20 requests per minute for this endpoint.
The service is going through temporary maintenance.
POST /v1/{organization}/metric/evaluate HTTP/1.1
Host: api.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
X-ORG-ID: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 84
{
"metric_ids": [
"text"
],
"conversation_id": "text",
"evaluate_to_interaction_id": "text"
}
{
"metrics": [
{
"metric_id": "text",
"name": "text",
"value": 1,
"references": [
"text"
],
"justification": "text"
}
]
}
curl --request POST \
--url 'https://api.amigo.ai/v1/<YOUR-ORG-ID>/metric/evaluate' \
--header 'Authorization: Bearer <JWT>' \
--header 'Content-Type: application/json' \
--data '{
"metric_ids": ["metric_id_1", "metric_id_2"],
"conversation_id": "<CONVERSATION-ID>",
"evaluate_to_interaction_id": "<INTERACTION-ID>"
}'
Last updated
Was this helpful?