SIM Integration Plugin
The SIM (Sim Studio) integration plugin brings AI-native workflow orchestration to Ever Gauzy, enabling tenants to design, trigger, and monitor AI agent workflows directly from the platform.
Overview
| Property | Value |
|---|---|
| Package | @gauzy/plugin-integration-sim |
| Source | packages/plugins/integration-sim |
| SDK | simstudio-ts-sdk |
| License | AGPL-3.0 |
| Version | 0.1.0 |
1. Introduction
This document describes the architecture and workflow design for integrating SIM (Sim Studio) — an open-source visual workflow builder for AI agent workflows — into the Ever Gauzy multi-tenant SaaS platform. It covers concepts, design decisions, data flows, and schema diagrams to provide a clear mental model of how the integration works.
2. What Is SIM and Why Integrate It?
2.1 What SIM Provides
SIM (Sim Studio) is an open-source platform that allows users to design, build, and deploy AI agent workflows through a visual drag-and-drop canvas. It connects AI models (OpenAI, Anthropic, Google Gemini, and others), databases, APIs, and business tools into orchestrated pipelines. Workflows can be triggered through chat interfaces, REST APIs, webhooks, scheduled cron jobs, or external events.
SIM offers over 80 native integrations, real-time collaboration, and can be deployed either as a managed cloud service or self-hosted via Docker and Kubernetes.
2.2 Why Gauzy Needs SIM
Gauzy already integrates with automation platforms — Zapier, Make, and Activepieces — which are designed for general-purpose workflow automation. SIM fills a different niche: AI-native orchestration. Where Zapier connects apps through triggers and actions, SIM connects AI agents through intelligent pipelines that can reason, branch, loop, and process unstructured data.
By integrating SIM, Gauzy tenants gain the ability to:
- Build AI-powered automation workflows that interact with their Gauzy data
- Execute complex multi-step AI pipelines programmatically from within Gauzy
- Trigger AI workflows from internal Gauzy events such as timer starts, task completions, or employee onboarding
- Monitor workflow execution history and results directly from the Gauzy dashboard
2.3 How SIM Differs from Existing Integrations
| Aspect | Zapier / Make / Activepieces | SIM |
|---|---|---|
| Primary purpose | App-to-app automation | AI agent orchestration |
| Workflow building | Trigger-action chains | Visual block canvas with AI agents, logic, and tools |
| AI capabilities | Limited (single AI step) | Native (multi-agent, reasoning, branching) |
| Authentication | OAuth2 flow | API key |
| Execution model | Event-driven webhooks | SDK-driven programmatic execution |
| Self-hosting | Varies | Fully supported (Docker / Kubernetes) |
3. Integration Approach
3.1 Plugin-Based Architecture
The SIM integration is implemented as a Gauzy plugin, following the same architectural pattern used by the Zapier, Make, and Activepieces integrations. This means it lives as a self-contained package within the plugins directory and registers itself with the Gauzy core through the standard plugin lifecycle.
This approach was chosen for the following reasons:
- Consistency: Every automation integration in Gauzy is a plugin. SIM is no exception.
- Modularity: The plugin can be enabled or disabled per deployment without affecting the core platform.
- Reuse: The plugin leverages all existing core integration infrastructure — tenant management, settings storage, permission guards, event buses — rather than reinventing them.
- Isolation: Plugin code is decoupled from Gauzy core, making it independently testable and maintainable.
3.2 Why Not a Microservice or MCP Extension?
A microservice approach was considered but rejected because SIM integration is fundamentally a client-side operation — Gauzy calls SIM's API. There is no need for a separate runtime process. The SDK handles all communication.
An MCP-only extension was also considered. While SIM workflows will be selectively exposed via MCP (see Section 9), the MCP server is designed for AI assistants to call Gauzy tools, not for Gauzy to orchestrate external platforms. The plugin approach is the correct layer for this integration.
3.3 Architecture Diagram
4. How the Plugin Fits into Gauzy
4.1 Plugin Lifecycle
When Gauzy starts, the SIM plugin goes through the standard plugin lifecycle:
- Registration: The plugin declares its module, entities, and configuration callback
- Bootstrap: The plugin validates that essential configuration is present (environment variables for default SIM URL) and logs its readiness
- Runtime: The module's controllers, services, and event handlers become active and respond to requests
- Destroy: On shutdown, the plugin cleans up any resources (cached clients, etc.)
@Plugin({
imports: [SimModule],
entities: [SimWorkflowExecution],
configuration: (config: ApplicationPluginConfig) => {
return config;
},
})
export class IntegrationSimPlugin
implements IOnPluginBootstrap, IOnPluginDestroy
{
onPluginBootstrap(): void {
console.log("IntegrationSimPlugin is being bootstrapped...");
}
onPluginDestroy(): void {
console.log("IntegrationSimPlugin is being destroyed...");
}
}
4.2 Core Module Dependencies
The SIM plugin does not operate in isolation. It imports and depends on several core Gauzy modules:
- Integration Tenant Module: Manages the per-tenant integration record that links a tenant to their SIM configuration
- Integration Setting Module: Stores and retrieves per-tenant settings like API keys, base URLs, and event-to-workflow mappings
- Integration Module: Manages the base "SIM" integration entry in the integration catalog
- Role Permission Module: Provides guards for permission-based access control
- CQRS Module: Enables the command bus (for creating/updating integration records) and event bus (for listening to internal Gauzy events)
- HTTP Module: Provides HTTP client capabilities (used internally by the SIM SDK)
- Config Module: Access to environment-level configuration
4.3 Contracts Extension
The shared contracts package includes an entry in the integration enumeration to identify SIM as a recognized integration provider. This is a single-line addition to the existing enum that already contains entries for Zapier, Make, Activepieces, GitHub, Jira, and others.