OptimoCMSDocs
Guides

Business Orchestrator

Launch a complete online business with one prompt. Website, domain, email, webshop, bookings, voice agent and SEO — all in one API call.

Business Orchestrator

The create_business tool sets up a fully operational online business in a single call: website, domain, email, webshop, bookings, voice agent, chatbot, loyalty program, SEO, and publication.

How it works

The orchestrator executes up to 10 steps sequentially:

StepActionRequired
1Generate website (AI)Always (hard blocker)
2Register domain + DNSOnly if domain is provided
3Create mailbox (info@)Only if domain was registered
4Activate bookingsOnly if "booking" in features
5Activate webshopOnly if "ecommerce" in features
6Configure voice agentOnly if "voice_agent" in features
7Activate chatbotOnly if "chatbot" in features
8Activate loyalty programOnly if "loyalty" in features
9Configure SEOAlways
10Publish siteAlways

Example: dental practice in Valencia

Prompt:

Create a dental practice in Valencia with online bookings and a voice agent.
Register the domain tandarts-valencia.es.

MCP tool call:

{
  "tool": "create_business",
  "arguments": {
    "businessName": "Tandarts Valencia",
    "businessType": "dental_practice",
    "language": "es",
    "domain": "tandarts-valencia.es",
    "features": ["booking", "voice_agent"],
    "registrant": {
      "first_name": "María",
      "last_name": "García",
      "email": "maria@tandarts-valencia.es",
      "phone": "+34612345678",
      "address1": "Calle de la Paz 12",
      "city": "Valencia",
      "country": "ES",
      "postal_code": "46002"
    },
    "style": "corporate"
  }
}

Response:

{
  "siteId": "site_abc123",
  "siteUrl": "https://tandarts-valencia.es",
  "steps": [
    { "step": "GENERATE_SITE", "status": "success", "duration": 45200 },
    { "step": "REGISTER_DOMAIN", "status": "success", "duration": 8100 },
    { "step": "CREATE_MAILBOX", "status": "success", "duration": 3200 },
    { "step": "SETUP_BOOKING", "status": "success", "duration": 850 },
    { "step": "SETUP_ECOMMERCE", "status": "skipped", "duration": 0 },
    { "step": "SETUP_VOICE_AGENT", "status": "success", "duration": 1200 },
    { "step": "SETUP_CHATBOT", "status": "skipped", "duration": 0 },
    { "step": "SETUP_LOYALTY", "status": "skipped", "duration": 0 },
    { "step": "CONFIGURE_SEO", "status": "success", "duration": 420 },
    { "step": "PUBLISH", "status": "success", "duration": 2800 }
  ],
  "summary": {
    "pagesCreated": true,
    "domainRegistered": true,
    "mailboxCreated": true,
    "bookingEnabled": true,
    "voiceAgentEnabled": true,
    "ecommerceEnabled": false,
    "chatbotEnabled": false,
    "loyaltyEnabled": false,
    "seoConfigured": true,
    "published": true
  }
}

Input parameters

ParameterTypeRequiredDescription
businessNamestringYesName of the business
businessTypestringYesBusiness type: dental_practice, restaurant, hair_salon, webshop, real_estate, hotel, gym, bakery
languagestringNoContent language: nl, en, de, fr, es (default: nl)
domainstringNoDomain to register (e.g. bakery-amsterdam.nl)
featuresstring[]NoFeatures to activate: booking, voice_agent, ecommerce, chatbot, loyalty, push
registrantobjectNoContact details for domain registration
stylestringNoVisual style: minimalist, corporate, playful, elegant

Registrant object

Required when domain is provided:

FieldTypeRequiredDescription
first_namestringYesFirst name
last_namestringYesLast name
emailstringYesEmail address
phonestringYesPhone number
address1stringYesAddress
citystringYesCity
countrystringYesISO 3166-1 alpha-2 country code
postal_codestringYesPostal code
org_namestringNoOrganization name
statestringNoProvince/state

Error handling

The orchestrator uses best-effort per step:

  • GENERATE_SITE is the only hard blocker. If it fails, the entire process stops.
  • All other steps continue on failure. A failed step is marked as "failed" with an error message.
  • The site is always usable, even if domain or email fails.

Example: domain not available

{
  "step": "REGISTER_DOMAIN",
  "status": "failed",
  "duration": 2100,
  "error": "Domain \"tandarts-valencia.es\" is not available (status: taken)"
}

Subsequent steps (mailbox, SEO, publish) are still executed. Only steps dependent on the domain (like mailbox) are skipped.

Tier requirements per feature

FeatureStarterProfessionalAgency
Website generation
Domain registration❌ (trial)✅ (1 free)✅ (5 free)
Mailbox creation❌ (trial)
Bookings
Webshop
Voice agent
Chatbot
Loyalty
SEO

Domain registration and mailbox creation are not available during the trial period. The site is still generated and published.

Permissions

create_business requires two permissions on the API key:

  • "write" — for creating resources
  • "ai" — for AI site generation

Minimal example

Generate a website only, without domain or extra features:

{
  "tool": "create_business",
  "arguments": {
    "businessName": "Golden Crust Bakery",
    "businessType": "bakery"
  }
}

This generates a site, configures basic SEO, and publishes on a *.optimocms.com subdomain.

Timing

StepExpected duration
Website generation (AI)30–60 seconds
Domain registration5–10 seconds
Other steps< 5 seconds each
Total60–120 seconds

The Cloud Function timeout is 540 seconds (9 minutes), more than sufficient.

On this page