LiyaEngine Docs
Platform

Versioning

Every save creates a new, immutable version of your intent — diffable and restorable.

Dashboard

Every explicit save creates a new, immutable version of your intent — prompt, schemas, guardrails, and execution config captured in full. Compare any two versions with a field-level diff, and restore a prior version in one click; the restore itself becomes a new version, so you're never one mistake away from a dead end.

API reference

GET  /dashboard/custom-domains/:domainKey/intents/:key/versions                    # list versions
GET  /dashboard/custom-domains/:domainKey/intents/:key/versions/:versionNumber     # get one version
POST /dashboard/custom-domains/:domainKey/intents/:key/versions/:versionNumber/restore  # restore it
GET  /dashboard/custom-domains/intent-versions                                     # cross-domain feed of recent changes

Restore a prior version:

POST https://api.liyaengine.ai/dashboard/custom-domains/support/intents/resolve_ticket/versions/12/restore
Authorization: Bearer <jwt>
{
  "success": true,
  "data": {
    "intent": {
      "id": "cin_01HZ...",
      "domain_key": "support",
      "intent_key": "resolve_ticket",
      "display_name": "Resolve Ticket",
      "prompt_template": "...",
      "output_schema": { ... },
      "guardrails_config": { ... }
    }
  }
}

The response is the intent's live, updated definition, not a version record — restoring version 12 doesn't delete versions 13 or 14, it saves a new version (e.g. 14) with version 12's content, so the full history stays intact. Call GET .../versions afterward to see the new entry.

What's versioned

Every save captures the intent's full definition together, so a version always represents a complete, working configuration — not just the prompt text: input/output schemas, guardrail policies, execution config, and retrieval config all move together.

On this page