Single File
All workflow logic in one TypeScript file
- Simple to use
- Easy to share
- Quick deployment
Best for: Small workflows, quick scripts
Own your automation code. Export any visual workflow to production-ready TypeScript that you can deploy, customize, and version control.
Go from visual workflow to production code in minutes.
Navigate to the workflow you want to export. The workflow should be tested and working before export.
In the toolbar, click the Export button and select 'Export as TypeScript'. Choose your export options.
Preview the generated TypeScript code. Check that all steps, error handling, and types are correct.
Download the code package. Open in your editor, add to your project, and customize as needed.
Deploy the exported code to your infrastructure. Run as a service, serverless function, or CLI tool.
Select the format that best fits your deployment needs.
All workflow logic in one TypeScript file
Best for: Small workflows, quick scripts
Organized into separate modules with package.json
Best for: Production systems, larger workflows
Configured for AWS Lambda, Vercel, or Cloudflare Workers
Best for: Event-driven, variable traffic
Here's what a simple form-to-Slack workflow looks like when exported to TypeScript:
// Generated workflow: Slack Notification on Form Submit
import { z } from 'zod';
// Type-safe input schema
const FormInputSchema = z.object({
name: z.string(),
email: z.string().email(),
message: z.string(),
});
type FormInput = z.infer<typeof FormInputSchema>;
// Workflow configuration
const config = {
slackWebhookUrl: process.env.SLACK_WEBHOOK_URL!,
channel: '#notifications',
};
// Main workflow function
export async function handleFormSubmission(input: FormInput) {
// Validate input
const data = FormInputSchema.parse(input);
// Format Slack message
const message = {
channel: config.channel,
blocks: [
{
type: 'header',
text: { type: 'plain_text', text: 'New Form Submission' }
},
{
type: 'section',
fields: [
{ type: 'mrkdwn', text: `*Name:*\n${data.name}` },
{ type: 'mrkdwn', text: `*Email:*\n${data.email}` }
]
},
{
type: 'section',
text: { type: 'mrkdwn', text: `*Message:*\n${data.message}` }
}
]
};
// Send to Slack
const response = await fetch(config.slackWebhookUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(message),
});
if (!response.ok) {
throw new Error(`Slack API error: ${response.status}`);
}
return { success: true, timestamp: new Date().toISOString() };
}Common questions about code export.
Build visually, export to code, deploy anywhere. Full ownership, no lock-in.
Own your automation code. Export any visual workflow to production-ready TypeScript that you can deploy, customize, and version control.
Go from visual workflow to production code in minutes.
Navigate to the workflow you want to export. The workflow should be tested and working before export.
In the toolbar, click the Export button and select 'Export as TypeScript'. Choose your export options.
Preview the generated TypeScript code. Check that all steps, error handling, and types are correct.
Download the code package. Open in your editor, add to your project, and customize as needed.
Deploy the exported code to your infrastructure. Run as a service, serverless function, or CLI tool.
Select the format that best fits your deployment needs.
All workflow logic in one TypeScript file
Best for: Small workflows, quick scripts
Organized into separate modules with package.json
Best for: Production systems, larger workflows
Configured for AWS Lambda, Vercel, or Cloudflare Workers
Best for: Event-driven, variable traffic
Here's what a simple form-to-Slack workflow looks like when exported to TypeScript:
// Generated workflow: Slack Notification on Form Submit
import { z } from 'zod';
// Type-safe input schema
const FormInputSchema = z.object({
name: z.string(),
email: z.string().email(),
message: z.string(),
});
type FormInput = z.infer<typeof FormInputSchema>;
// Workflow configuration
const config = {
slackWebhookUrl: process.env.SLACK_WEBHOOK_URL!,
channel: '#notifications',
};
// Main workflow function
export async function handleFormSubmission(input: FormInput) {
// Validate input
const data = FormInputSchema.parse(input);
// Format Slack message
const message = {
channel: config.channel,
blocks: [
{
type: 'header',
text: { type: 'plain_text', text: 'New Form Submission' }
},
{
type: 'section',
fields: [
{ type: 'mrkdwn', text: `*Name:*\n${data.name}` },
{ type: 'mrkdwn', text: `*Email:*\n${data.email}` }
]
},
{
type: 'section',
text: { type: 'mrkdwn', text: `*Message:*\n${data.message}` }
}
]
};
// Send to Slack
const response = await fetch(config.slackWebhookUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(message),
});
if (!response.ok) {
throw new Error(`Slack API error: ${response.status}`);
}
return { success: true, timestamp: new Date().toISOString() };
}Common questions about code export.
Build visually, export to code, deploy anywhere. Full ownership, no lock-in.