.0n Files
Real Workflow Examples
Production-ready .0n files you can copy, customize, and run. Each one orchestrates multiple services through a single config.
3
Examples
18
Steps
6
Services
.0n Schema v1.0
Full specification →File Anatomy
$0nEnvelope: type + versioninputsDeclared runtime inputssteps[]Runs in array orderservice / actionWhat to callparamsArguments for the callconditionsBare {{ref}} gateerror_handlingstop | continue | retryoutputsWorkflow return mapDomain Check
starterQuick domain availability check, with alternatives generated only when the domain is taken.
3
Steps
1
Services
~5 seconds
Runtime
GoDaddy#domain#quick-check
domain-check.0n
{
"$0n": {
"type": "workflow",
"version": "1.0",
"name": "domain-check"
},
"description": "Quick domain availability check, with alternatives generated only when the domain is taken.",
"inputs": {
"client_domain": {
"required": true,
"description": "Domain to check, e.g. acme.com"
},
"client_name": {
"required": true,
"description": "Brand name used to seed suggestions"
}
},
"steps": [
{
"id": "check",
"service": "godaddy",
"action": "check_availability",
"params": {
"domain": "{{inputs.client_domain}}"
},
"error_handling": {
"on_error": "stop"
}
},
{
"id": "unavailable",
"service": "internal",
"action": "compute",
"params": {
"expression": "({{steps.check.available}} ? 0 : 1)"
}
},
{
"id": "suggest",
"service": "godaddy",
"action": "suggest_domains",
"conditions": "{{steps.unavailable.value}}",
"params": {
"query": "{{inputs.client_name}}",
"limit": 20
},
"error_handling": {
"on_error": "continue"
}
}
],
"outputs": {
"available": "{{steps.check.available}}",
"price": "{{steps.check.price}}",
"suggestions": "{{steps.suggest.domains}}"
}
}Client Onboarding
proClient onboarding pipeline: verify the live site, set up Stripe billing, publish a welcome doc, then hand off to the CRM.
8
Steps
4
Services
~2 minutes
Runtime
NetlifyStripeNotionn8n#onboarding#billing#crm
client-onboard.0n
{
"$0n": {
"type": "workflow",
"version": "1.0",
"name": "client-onboard"
},
"description": "Client onboarding pipeline: verify the live site, set up Stripe billing, publish a welcome doc, then hand off to the CRM.",
"inputs": {
"client_name": {
"required": true
},
"client_email": {
"required": true
},
"client_domain": {
"required": true
},
"netlify_site_id": {
"required": true,
"description": "Site whose deploy we verify before billing"
},
"notion_parent_id": {
"required": true,
"description": "Notion database the welcome doc is created in"
},
"crm_workflow_id": {
"required": true,
"description": "n8n workflow that runs CRM onboarding"
},
"monthly_price": {
"required": false,
"description": "Whole dollars, e.g. 299"
}
},
"steps": [
{
"id": "site",
"service": "netlify",
"action": "get_site",
"params": {
"site_id": "{{inputs.netlify_site_id}}"
},
"error_handling": {
"on_error": "stop"
}
},
{
"id": "customer",
"service": "stripe",
"action": "create_customer",
"params": {
"name": "{{inputs.client_name}}",
"email": "{{inputs.client_email}}",
"description": "{{inputs.client_domain}} — client-onboard"
},
"error_handling": {
"on_error": "stop"
}
},
{
"id": "product",
"service": "stripe",
"action": "create_product",
"params": {
"name": "{{inputs.client_name}} — Website Package",
"description": "Monthly website hosting, management, and optimization"
},
"error_handling": {
"on_error": "stop"
}
},
{
"id": "amount",
"service": "internal",
"action": "compute",
"params": {
"expression": "{{inputs.monthly_price}} * 100"
}
},
{
"id": "price",
"service": "stripe",
"action": "create_price",
"params": {
"product": "{{steps.product.id}}",
"unit_amount": "{{steps.amount.value}}",
"currency": "usd",
"recurring": {
"interval": "month"
}
}
},
{
"id": "subscription",
"service": "stripe",
"action": "create_subscription",
"params": {
"customer": "{{steps.customer.id}}",
"items": [
{
"price": "{{steps.price.id}}"
}
],
"collection_method": "send_invoice",
"days_until_due": 30
}
},
{
"id": "welcome_doc",
"service": "notion",
"action": "create_page",
"params": {
"parent": {
"database_id": "{{inputs.notion_parent_id}}"
},
"properties": {
"title": [
{
"text": {
"content": "Welcome aboard, {{inputs.client_name}} — {{steps.site.ssl_url}} is live"
}
}
]
}
},
"error_handling": {
"on_error": "continue"
}
},
{
"id": "crm",
"service": "n8n",
"action": "execute_workflow",
"params": {
"workflowId": "{{inputs.crm_workflow_id}}",
"client_name": "{{inputs.client_name}}",
"stripe_customer_id": "{{steps.customer.id}}",
"subscription_id": "{{steps.subscription.id}}",
"welcome_doc_url": "{{steps.welcome_doc.url}}"
},
"error_handling": {
"on_error": "retry",
"retries": 2,
"backoff_ms": 1000
}
}
],
"outputs": {
"customer_id": "{{steps.customer.id}}",
"subscription_id": "{{steps.subscription.id}}",
"subscription_status": "{{steps.subscription.status}}",
"welcome_doc_url": "{{steps.welcome_doc.url}}"
}
}Website Factory
burstFull website factory: domain check, CRM enrichment, site deploy, Stripe billing, client deck, CRM handoff, team notification.
11
Steps
7
Services
~4 minutes
Runtime
GoDaddyHubSpotNetlifyStripeNotionn8nSlack#client-site#full-pipeline#auto-billing
website-factory.0n
{
"$0n": {
"type": "workflow",
"version": "1.0",
"name": "website-factory"
},
"description": "Full website factory: domain check, CRM enrichment, site deploy, Stripe billing, client deck, CRM handoff, team notification.",
"inputs": {
"client_name": {
"required": true
},
"client_domain": {
"required": true
},
"industry": {
"required": false
},
"notion_parent_id": {
"required": true
},
"crm_workflow_id": {
"required": true
},
"slack_channel": {
"required": true,
"description": "Channel id or #name for the completion notice"
},
"monthly_price": {
"required": false,
"description": "Whole dollars, e.g. 299"
}
},
"steps": [
{
"id": "check",
"service": "godaddy",
"action": "check_availability",
"params": {
"domain": "{{inputs.client_domain}}"
},
"error_handling": {
"on_error": "stop"
}
},
{
"id": "unavailable",
"service": "internal",
"action": "compute",
"params": {
"expression": "({{steps.check.available}} ? 0 : 1)"
}
},
{
"id": "suggest",
"service": "godaddy",
"action": "suggest_domains",
"conditions": "{{steps.unavailable.value}}",
"params": {
"query": "{{inputs.client_name}} {{inputs.industry}}",
"limit": 10
},
"error_handling": {
"on_error": "continue"
}
},
{
"id": "enrich",
"service": "hubspot",
"action": "search_contacts",
"params": {
"filterGroups": [
{
"filters": [
{
"propertyName": "company",
"operator": "EQ",
"value": "{{inputs.client_name}}"
}
]
}
]
},
"error_handling": {
"on_error": "continue"
}
},
{
"id": "deploy",
"service": "netlify",
"action": "create_site",
"conditions": "{{steps.check.available}}",
"params": {
"name": "{{inputs.client_name}}",
"custom_domain": "{{inputs.client_domain}}"
},
"error_handling": {
"on_error": "retry",
"retries": 3,
"backoff_ms": 2000
}
},
{
"id": "product",
"service": "stripe",
"action": "create_product",
"params": {
"name": "{{inputs.client_name}} — Website Management",
"description": "Managed hosting, analytics, and optimization for {{inputs.client_domain}}"
}
},
{
"id": "amount",
"service": "internal",
"action": "compute",
"params": {
"expression": "{{inputs.monthly_price}} * 100"
}
},
{
"id": "price",
"service": "stripe",
"action": "create_price",
"params": {
"product": "{{steps.product.id}}",
"unit_amount": "{{steps.amount.value}}",
"currency": "usd",
"recurring": {
"interval": "month"
}
}
},
{
"id": "deck",
"service": "notion",
"action": "create_page",
"params": {
"parent": {
"database_id": "{{inputs.notion_parent_id}}"
},
"properties": {
"title": [
{
"text": {
"content": "{{inputs.client_name}} — launch brief for {{steps.deploy.ssl_url}}"
}
}
]
}
},
"error_handling": {
"on_error": "continue"
}
},
{
"id": "crm",
"service": "n8n",
"action": "execute_workflow",
"params": {
"workflowId": "{{inputs.crm_workflow_id}}",
"client_name": "{{inputs.client_name}}",
"deployment_url": "{{steps.deploy.ssl_url}}",
"stripe_price_id": "{{steps.price.id}}",
"deck_url": "{{steps.deck.url}}"
},
"error_handling": {
"on_error": "retry",
"retries": 2,
"backoff_ms": 1000
}
},
{
"id": "notify",
"service": "slack",
"action": "send_message",
"params": {
"channel": "{{inputs.slack_channel}}",
"text": "Website factory finished for {{inputs.client_name}} — {{steps.deploy.ssl_url}}"
},
"error_handling": {
"on_error": "continue"
}
}
],
"outputs": {
"domain_available": "{{steps.check.available}}",
"deployment_url": "{{steps.deploy.ssl_url}}",
"stripe_price_id": "{{steps.price.id}}",
"deck_url": "{{steps.deck.url}}"
}
}Build your own
Create .0n files that orchestrate any of our 97 services. Describe outcomes, not steps.
npx 0nmcp
Read the .0n spec →