# ECA Modules Reference

## ECA Sub-Modules

These sub-modules ship with the ECA project itself. Enable only what you
need for your use case.

### Providing ECA functionality

- ECA Access: Events and actions to control access on entities and fields
- ECA Base: Base events, conditions and actions (cron, custom events, tokens, key-value stores, lists, state)
- ECA Cache: Actions to read, write or invalidate cache items
- ECA Config: Config events (react to config save/delete/import/rename)
- ECA Content: Content entity events, conditions and actions (presave, insert, update, delete, load, view, validate)
- ECA Content Access: Grant or revoke content access
- ECA Endpoint: Custom HTTP endpoints with ECA (full request/response control, Ajax responses)
- ECA File: File actions such as rename and write
- ECA Form: Form API events, conditions and actions (build, validate, submit, field manipulation)
- ECA Language: Language-related actions
- ECA Log: Events and actions for Drupal log messages
- ECA Migrate: Migrate events
- ECA Misc: Miscellaneous events and conditions from Drupal core and the kernel
- ECA Queue: Events, conditions and actions for queued (async) operations
- ECA Render: Render-related actions (manipulate render arrays)
- ECA User: User events, conditions and actions (login, logout, register, cancel, role changes)
- ECA Views: Execute and export Views query results within ECA
- ECA Workflow: Content entity workflow/content moderation actions

### Utility modules

- ECA UI: Provides access to ECA in Drupal's admin UI (model list, import/export, settings, logs)
- ECA Development: Provides Drush commands and code generators for plugin developers

## Drupal Contrib Modules

Separate projects on Drupal.org that extend ECA with extra events,
conditions or actions.

### Integrations with other Drupal modules

- Commerce ECA (drupal/commerce_eca)
- CrowdSec (drupal/crowdsec)
- DANSE (drupal/danse)
- Drupal Remote Dashboard (drupal/drd)
- Easy Email (drupal/easy_email)
- ECA Commerce (drupal/eca_commerce)
- ECA Condition (drupal/eca_condition)
- ECA Entity Print (drupal/eca_entity_print)
- ECA Entity Share Client/Server (drupal/eca_entity_share)
- ECA Expression Language (drupal/eca_expression_language)
- ECA External Workflows (drupal/eca_external_workflows)
- ECA Field Widget Actions (drupal/eca_field_widget_actions)
- ECA Flag (drupal/eca_flag)
- ECA Group (drupal/eca_group)
- ECA Helper (drupal/eca_helper)
- ECA HTML Parser (drupal/eca_html_parser)
- ECA Inline Entity Form (drupal/eca_inline_entity_form)
- ECA Maestro (drupal/eca_maestro)
- ECA Metatag (drupal/eca_metatag)
- ECA Mustache (drupal/eca_mustache)
- ECA Parameters (drupal/eca_parameters)
- ECA Project Browser (drupal/eca_project_browser)
- ECA Remote Request (drupal/eca_remote_request)
- ECA Report (drupal/eca_report)
- ECA Simplenews (drupal/eca_simplenews)
- ECA Site Building Tools (drupal/eca_site_building)
- ECA Starterkit (drupal/eca_starterkit) -- recommended for new installations
- ECA State Machine (drupal/eca_state_machine)
- ECA Tamper (drupal/eca_tamper)
- ECA Telegram (drupal/eca_tg)
- ECA Tool (drupal/eca_tool)
- ECA Tour (drupal/eca_tour)
- ECA Twilio Action (drupal/eca_twilio_action)
- ECA Variety Pack (drupal/eca_variety_pack)
- ECA VBO (drupal/eca_vbo) -- Views Bulk Operations integration
- ECA Views Data Export (drupal/eca_views_data_export)
- ECA Webform (drupal/eca_webform)
- ECA Webprofiler (drupal/eca_webprofiler) -- per-request ECA debugging

### AI and LLM integrations

- AI Integration - ECA (drupal/ai_integration_eca)
- Augmentor AI (drupal/augmentor)
- Prompt AI (drupal/prompt)

### Communication integrations

- BlueSky Integration (drupal/bsky)
- DiscordPHP (drupal/discord_php)
- ECA Kafka Connection (drupal/eca_kafka)

### External services and APIs

- Bookable Calendar (drupal/bookable_calendar)
- ECA: Google (drupal/eca_google)
- ECA: HubSpot (drupal/eca_hubspot)
- ECA: Zoom (drupal/eca_zoom)
- GitLab API v4 (drupal/gitlab_api)
- HTTP Client Manager (drupal/http_client_manager)
- Mautic ECA (drupal/mautic_eca)
- Orchestration (drupal/orchestration)
- Push Framework (drupal/push_framework)
- Salesforce ECA Integration (drupal/salesforce_eca)
- Shelly (drupal/shelly)
- Solcast (drupal/solcast)

### Other related projects

- ECA Context (drupal/eca_context)
- ECA Drush (drupal/eca_drush)
- Group Actions (drupal/group_action)
- Laravel Helpers / Laravel Process (drupal/laravel_helpers, drupal/laravel_process)
- Token ECA Alter (drupal/token_eca_alter)
- Workflow ECA (drupal/workflow_eca)

## Known Issues

### Variety of workflow modules

Three modules provide workflows, states and transitions:

- Workflows (Drupal core)
- Workflow (contrib)
- State machine (contrib)

They have nothing in common and mixing events/conditions/actions from
different workflow systems in the same ECA model can cause errors. Always
state which workflow system you are using when reporting issues.
