AutoKitteh Documentation
website·Indexed 33 days ago
https://docs.autokitteh.com/An automation platform that can be deployed on-prem, in the cloud, or on a PC. It provides integrations with services including Slack, Zoom, Twilio, Telegram, Salesforce, Reddit, Pipedrive, Microsoft, Atlassian Jira, Google (Gmail, Calendar, Forms), Linear, and GitHub to automate productivity and DevOps workflows.
What's inside AutoKitteh
- The Private OAuth v2 connection mode allows project owners to configure their own Slack apps rather than using a server-wide configuration. This enables users in any Slack workspace to install the app, granting the app an access token to use Slack API methods, events, and interactive features. This setup requires the AutoKitteh server to be configured with HTTP tunneling.
Overview of AutoKitteh components
AutoKitteh consists of four primary components used to manage and execute automation workflows:
- AutoKitteh Service: The core engine that manages and executes projects.
- CLI: Command Line Interface for interacting with the service.
- VS-Code Extension: A dedicated UI within VS-Code for service interfacing.
- UI: A web-based interface for interacting with the service.
Overview of AutoKitteh workflow orchestration
AutoKitteh is an open-source workflow automation and orchestration platform designed for developers. It serves as a developer-first alternative to no-code/low-code platforms (like Zapier, Workato, or Make.com) and acts as a durable execution platform that complements Temporal. It provides abstractions for creating, managing, and monitoring reliable, long-running, code-centric workflows without requiring the boilerplate typically associated with sophisticated code.Understand AutoKitteh Deployment concepts and lifecycles
In AutoKitteh, a deployment is a many-to-many association between a project build and an execution environment (or the "default" environment). It encapsulates all elements required for project execution: code, triggers, connection definitions, and optional variables.
Deployments move through a specific lifecycle:
- Creation: Occurs when a project is built and deployed.
- Activation: When a deployment is activated, future workflow runs in that environment use this specific build, creating a session upon a trigger.
- De-activation: Stops the triggering of new sessions.
- Deletion: Permitted only when there are no running sessions.
Deployments can exist in one of the following states:
- Active: Normal operating state.
- Inactive: Not currently triggering sessions.
- Draining: Existing sessions continue until completion or manual stop, but new events will not trigger new sessions.
- Testing: Only system-generated test events trigger sessions; external events are ignored.
Understand the AutoKitteh Project model
A Project in AutoKitteh is a collection of settings and files that define a shared goal and implement one or more workflows. A project consists of:
- A unique name
- Zero or more connections
- Zero or more workflow triggers
- Zero or more execution environments
- Zero or more environment variables
- Associated files: source code and optional assets (e.g., data, images).
Connect AutoKitteh to GitHub using Personal Access Tokens (PAT)
This connection mode allows project owners to integrate AutoKitteh without a server-wide configuration. You can configure the connection to only send API calls (using a PAT), only receive events (using a personal webhook), or both. This is an alternative to using the default AutoKitteh server GitHub app or a private GitHub app.Integrate Zoom using a Private OAuth 2.0 app
A user-managed OAuth app allows project owners to securely integrate Zoom APIs and webhooks on behalf of an authorized user without requiring a server-wide AutoKitteh configuration. This method requires the user to be a Zoom workspace admin or have admin approval. Note that the AutoKitteh server must be configured with HTTP tunneling for this to work.Understand AutoKitteh platform architecture
AutoKitteh is a platform for creating, deploying, and managing projects consisting of multiple workflows. It executes user-provided code and configuration within a secure environment. A project is defined by three main configuration components:
- Connections (Adapters): Integration points to external services such as Slack or GitHub.
- Triggers: Mappings that link specific events from a connection (e.g., a webhook event) to an entry function in the code to start a workflow.
- Optional Variables: Custom variables accessible within the project code.
Deployments consist of both the configuration and the code. When a workflow is executed, the resulting instance is called a session.
Integrate Salesforce using a user-managed OAuth app
A user-managed OAuth app allows project owners to securely integrate with Salesforce APIs and webhooks on behalf of an authorized user without requiring a server-wide AutoKitteh configuration. Note that AutoKitteh does not support default OAuth apps for Salesforce. This integration requires the AutoKitteh server to be configured with HTTP tunneling.Select an AutoKitteh user interface
Users can interact with the AutoKitteh server using the following interfaces: the Command Line Interface (CLI), the Visual Studio Code extension, or the upcoming AutoKitteh Cloud interface.Authenticate with Linear using Personal API Keys
Personal API keys allow for straightforward authentication with the Linear API, bypassing the need for the OAuth flow. This is a simpler alternative to OAuth 2.0 authentication.Understand AutoKitteh Slack Socket Mode
Slack Socket Mode allows AutoKitteh to use the Events API and interactive features via a bidirectional stateful WebSocket connection. This eliminates the need for the AutoKitteh server to expose public HTTP webhooks, making it ideal for developers working behind corporate firewalls or with strict security constraints.
Availability & Constraints:
- Self-hosted: Available.
- Cloud (app.autokitteh.cloud): Disabled. Socket Mode is not suitable for production-grade high-availability due to connection limits (max 10 open WebSockets per app), the requirement for persistent connections, and challenges with stateless failover and load balancing.