Overview

Enterprise Event Streaming lets you receive real-time webhook updates about your crews and flows deployed to CrewAI Enterprise, such as model calls, tool usage, and flow steps.

Usage

When using the Kickoff API, include a webhooks object to your request, for example:
{
  "inputs": {"foo": "bar"},
  "webhooks": {
    "events": ["crew_kickoff_started", "llm_call_started"],
    "url": "https://your.endpoint/webhook",
    "realtime": false,
    "authentication": {
      "strategy": "bearer",
      "token": "my-secret-token"
    }
  }
}
If realtime is set to true, each event is delivered individually and immediately, at the cost of crew/flow performance.

Webhook Format

Each webhook sends a list of events:
{
  "events": [
    {
      "id": "event-id",
      "execution_id": "crew-run-id",
      "timestamp": "2025-02-16T10:58:44.965Z",
      "type": "llm_call_started",
      "data": {
        "model": "gpt-4",
        "messages": [
          {"role": "system", "content": "You are an assistant."},
          {"role": "user", "content": "Summarize this article."}
        ]
      }
    }
  ]
}
The data object structure varies by event type. Refer to the event list on GitHub. As requests are sent over HTTP, the order of events can’t be guaranteed. If you need ordering, use the timestamp field.

Supported Events

CrewAI supports both system events and custom events in Enterprise Event Streaming. These events are sent to your configured webhook endpoint during crew and flow execution.

Flow Events:

  • flow_created
  • flow_started
  • flow_finished
  • flow_plot
  • method_execution_started
  • method_execution_finished
  • method_execution_failed

Agent Events:

  • agent_execution_started
  • agent_execution_completed
  • agent_execution_error
  • lite_agent_execution_started
  • lite_agent_execution_completed
  • lite_agent_execution_error
  • agent_logs_started
  • agent_logs_execution
  • agent_evaluation_started
  • agent_evaluation_completed
  • agent_evaluation_failed

Crew Events:

  • crew_kickoff_started
  • crew_kickoff_completed
  • crew_kickoff_failed
  • crew_train_started
  • crew_train_completed
  • crew_train_failed
  • crew_test_started
  • crew_test_completed
  • crew_test_failed
  • crew_test_result

Task Events:

  • task_started
  • task_completed
  • task_failed
  • task_evaluation

Tool Usage Events:

  • tool_usage_started
  • tool_usage_finished
  • tool_usage_error
  • tool_validate_input_error
  • tool_selection_error
  • tool_execution_error

LLM Events:

  • llm_call_started
  • llm_call_completed
  • llm_call_failed
  • llm_stream_chunk

LLM Guardrail Events:

  • llm_guardrail_started
  • llm_guardrail_completed

Memory Events:

  • memory_query_started
  • memory_query_completed
  • memory_query_failed
  • memory_save_started
  • memory_save_completed
  • memory_save_failed
  • memory_retrieval_started
  • memory_retrieval_completed

Knowledge Events:

  • knowledge_search_query_started
  • knowledge_search_query_completed
  • knowledge_search_query_failed
  • knowledge_query_started
  • knowledge_query_completed
  • knowledge_query_failed

Reasoning Events:

  • agent_reasoning_started
  • agent_reasoning_completed
  • agent_reasoning_failed
Event names match the internal event bus. See GitHub source for the full list. You can emit your own custom events, and they will be delivered through the webhook stream alongside system events.

Need Help?

Contact our support team for assistance with webhook integration or troubleshooting.