| Create a custom Action plugin |
Action Plugin Basics |
| Integrate external APIs in actions |
Advanced Action Patterns |
| Create custom Events |
Event Plugin Basics |
| Filter events by entity type/bundle |
Entity-Aware Events |
| Create custom Conditions |
Condition Plugin Basics |
| Compare two values in a condition |
String Comparison Conditions |
| Add token support to forms |
Token Form Integration |
| Store structured data in tokens |
Complex Token Structures |
| Inject services into plugins |
Service Injection |
| Use traits to avoid code duplication |
Reusable Traits |
| Validate YAML configuration |
YAML Configuration |
| Access control for plugin execution |
Access Control Patterns |
| Clean up state after workflow execution |
Cleanup Interface |
| Preserve tokens across execution |
Token Receiver Interface |
| Generate multiple plugins from one class |
Plugin Derivers |
| Cache expensive operations |
Performance Patterns |
| Secure external API integrations |
Security Best Practices |
| Test ECA plugins |
Kernel Testing |
| Debug workflows |
Debugging Workflows |
| Avoid common mistakes |
Common Pitfalls |
| Understand mandatory rules |
Mandatory Rules |