Business teams handle their own repetitive processes. Engineers extend the platform with custom modules for anything proprietary. AI agents invoke your flows as tools. Everything executes with a full audit trail — on your infrastructure.
Business teams can't self-serve, so every process request becomes an engineering ticket. Engineers spend time writing glue code instead of shipping product.
Crons, Lambdas, and glue scripts sprawl across repos with no audit trail and no central view. When something breaks, nobody knows where to look.
Internal APIs and proprietary tools need custom code for every connection. The solutions pile up. The maintenance burden compounds.
Business teams self-serve. Engineers extend. Processes execute reliably.
One Go file. Your proprietary APIs, internal services, or custom logic drop in like any built-in module — auto-discovered, no registration, no rebuild required. Write it once and every flow in the platform can use it immediately.
package v2
type ModuleSlackAlert struct {
*PluginModule
}
// NewModuleSlackAlert is auto-discovered
// by flow8's reflection-based registry.
func (m *PluginModule) NewModuleSlackAlert() *ModuleSlackAlert {
return &ModuleSlackAlert{PluginModule: m}
}
func (m *ModuleSlackAlert) Execute(params Params) Response {
channel := params.GetString("channel")
message := params.GetString("message")
if err := postSlack(channel, message); err != nil {
return m.Fail(err.Error())
}
return m.Done(map[string]any{
"sent": true,
"channel": channel,
})
}
Every surface your team needs to build on, extend, and observe.
Connect any system via REST, webhooks, or custom modules
Book 30 minutes and we'll show you your highest-toil process executing on flow8 — with your modules, your APIs, on your infrastructure.
Book a demo →