Kairon · Schema

CampaignDraftDto

B2BSalesArtificial IntelligenceOutreachAutomationMarketing

Properties

Name Type Description
nodes array
edges array
startNodeKey object
View JSON Schema on GitHub

JSON Schema

heykairon-com-campaign-draft-dto-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/heykairon-com/json-schema/heykairon-com-campaign-draft-dto-schema.json",
  "title": "CampaignDraftDto",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/heykairon-com-openapi.yml#/components/schemas/CampaignDraftDto",
  "type": "object",
  "properties": {
    "nodes": {
      "maxItems": 100,
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80,
                "description": "A stable id you choose for this step; edges and `campaign_edit_graph` name it by this key. Unique within the graph."
              },
              "type": {
                "type": "string",
                "const": "send_invite",
                "description": "Which kind of step this is. It decides the shape of `config`, and which outcome edges the step may route on."
              },
              "config": {
                "type": "object",
                "properties": {
                  "note": {
                    "default": "",
                    "description": "Invite note, and the seed when `draftMode` is `ai_template`. In `ai_template` this seed is authoritative: the writer reproduces it word for word and adds nothing, so EVERY per-lead detail must sit inside a `{{...}}` slot written here. A seed with no slots sends the identical message to every lead. A slot holds a description of the fact to write there, phrased as a clause — e.g. `{{one short clause, 8-14 words, on what their company does}}`. Custom list columns reach a message two ways: `{{@columnName}}` sends that column's value word for word, and a normal AI slot that mentions a column can use it as a fact, written in the writer's own words. At publish it must be ≤300 characters, or ≤250 once it contains any `{{token}}` (the braces count), leaving room for what the token expands to. Over that, publish fails with `invite_note_too_long`. A note needs a sender with LinkedIn Premium or Sales Navigator (`canSendInviteNote` on `seat_list`); on any other seat leave it empty — `campaign_set_graph` refuses a note there.",
                    "type": "string",
                    "maxLength": 2000
                  },
                  "draftMode": {
                    "description": "How the copy is produced. `template`: sent as written — only allowlisted `{{variables}}` and per-lead `{{@slots}}` are substituted, no AI. `ai_template`: the AI personalizes YOUR seed, filling its `{{described slots}}` and nothing else. Absent means `template`.",
                    "type": "string",
                    "enum": [
                      "template",
                      "ai_template"
                    ]
                  },
                  "instruction": {
                    "description": "Optional note on tone and register, layered on the seed — NOT where the copy comes from. It reaches the writer AFTER the rule that says to keep the seed as written, so anything it asks for that the seed has no `{{slot}}` for is silently ignored: \"personalize the opening with their company\" does nothing unless a slot sits there. Write the copy in the seed.",
                    "type": "string",
                    "maxLength": 4000
                  },
                  "language": {
                    "description": "Force every message on this step into one language, or set 'auto' so each lead is written to in their OWN language, translating your seed faithfully. OMIT IT and the step uses the default language the sender chose in their settings, or 'auto' when they chose none — which is usually what you want. This rule outranks the seed's original language.",
                    "anyOf": [
                      {
                        "type": "string",
                        "const": "auto"
                      },
                      {
                        "type": "string",
                        "enum": [
                          "aa",
                          "ab",
                          "ae",
                          "af",
                          "ak",
                          "am",
                          "an",
                          "ar",
                          "as",
                          "av",
                          "ay",
                          "az",
                          "ba",
                          "be",
                          "bg",
                          "bh",
                          "bi",
                          "bm",
                          "bn",
                          "bo",
                          "br",
                          "bs",
                          "ca",
                          "ce",
                          "ch",
                          "co",
                          "cr",
                          "cs",
                          "cu",
                          "cv",
                          "cy",
                          "da",
                          "de",
                          "dv",
                          "dz",
                          "ee",
                          "el",
                          "en",
                          "eo",
                          "es",
                          "et",
                          "eu",
                          "fa",
                          "ff",
                          "fi",
                          "fj",
                          "fo",
                          "fr",
                          "fy",
                          "ga",
                          "gd",
                          "gl",
                          "gn",
                          "gu",
                          "gv",
                          "ha",
                          "he",
                          "hi",
                          "ho",
                          "hr",
                          "ht",
                          "hu",
                          "hy",
                          "hz",
                          "ia",
                          "id",
                          "ie",
                          "ig",
                          "ii",
                          "ik",
                          "io",
                          "is",
                          "it",
                          "iu",
                          "ja",
                          "jv",
                          "ka",
                          "kg",
                          "ki",
                          "kj",
                          "kk",
                          "kl",
                          "km",
                          "kn",
                          "ko",
                          "kr",
                          "ks",
                          "ku",
                          "kv",
                          "kw",
                          "ky",
                          "la",
                          "lb",
                          "lg",
                          "li",
                          "ln",
                          "lo",
                          "lt",
                          "lu",
                          "lv",
                          "mg",
                          "mh",
                          "mi",
                          "mk",
                          "ml",
                          "mn",
                          "mr",
                          "ms",
                          "mt",
                          "my",
                          "na",
                          "nb",
                          "nd",
                          "ne",
                          "ng",
                          "nl",
                          "nn",
                          "no",
                          "nr",
                          "nv",
                          "ny",
                          "oc",
                          "oj",
                          "om",
                          "or",
                          "os",
                          "pa",
                          "pi",
                          "pl",
                          "ps",
                          "pt",
                          "qu",
                          "rm",
                          "rn",
                          "ro",
                          "ru",
                          "rw",
                          "sa",
                          "sc",
                          "sd",
                          "se",
                          "sg",
                          "si",
                          "sk",
                          "sl",
                          "sm",
                          "sn",
                          "so",
                          "sq",
                          "sr",
                          "ss",
                          "st",
                          "su",
                          "sv",
                          "sw",
                          "ta",
                          "te",
                          "tg",
                          "th",
                          "ti",
                          "tk",
                          "tl",
                          "tn",
                          "to",
                          "tr",
                          "ts",
                          "tt",
                          "tw",
                          "ty",
                          "ug",
                          "uk",
                          "ur",
                          "uz",
                          "ve",
                          "vi",
                          "vo",
                          "wa",
                          "wo",
                          "xh",
                          "yi",
                          "yo",
                          "za",
                          "zh",
                          "zu"
                        ]
                      }
                    ]
                  },
                  "localization": {
                    "description": "The seed translated into other languages, one per ISO 639-1 code, each keeping every `{{…}}` slot byte-exact and every `---` line. Kairon writes a language here the first time it drafts a lead in it; you may edit any entry and it is then used as written for every later lead in that language. Leave it out to let Kairon translate.",
                    "type": "object",
                    "properties": {
                      "seedHash": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Hash of the seed text these translations were made for. Kairon sets it; when the seed changes, the whole object goes stale and is rebuilt. Copy it through unchanged."
                      },
                      "seedLanguage": {
                        "type": "string",
                        "enum": [
                          "aa",
                          "ab",
                          "ae",
                          "af",
                          "ak",
                          "am",
                          "an",
                          "ar",
                          "as",
                          "av",
                          "ay",
                          "az",
                          "ba",
                          "be",
                          "bg",
                          "bh",
                          "bi",
                          "bm",
                          "bn",
                          "bo",
                          "br",
                          "bs",
                          "ca",
                          "ce",
                          "ch",
                          "co",
                          "cr",
                          "cs",
                          "cu",
                          "cv",
                          "cy",
                          "da",
                          "de",
                          "dv",
                          "dz",
                          "ee",
                          "el",
                          "en",
                          "eo",
                          "es",
                          "et",
                          "eu",
                          "fa",
                          "ff",
                          "fi",
                          "fj",
                          "fo",
                          "fr",
                          "fy",
                          "ga",
                          "gd",
                          "gl",
                          "gn",
                          "gu",
                          "gv",
                          "ha",
                          "he",
                          "hi",
                          "ho",
                          "hr",
                          "ht",
                          "hu",
                          "hy",
                          "hz",
                          "ia",
                          "id",
                          "ie",
                          "ig",
                          "ii",
                          "ik",
                          "io",
                          "is",
                          "it",
                          "iu",
                          "ja",
                          "jv",
                          "ka",
                          "kg",
                          "ki",
                          "kj",
                          "kk",
                          "kl",
                          "km",
                          "kn",
                          "ko",
                          "kr",
                          "ks",
                          "ku",
                          "kv",
                          "kw",
                          "ky",
                          "la",
                          "lb",
                          "lg",
                          "li",
                          "ln",
                          "lo",
                          "lt",
                          "lu",
                          "lv",
                          "mg",
                          "mh",
                          "mi",
                          "mk",
                          "ml",
                          "mn",
                          "mr",
                          "ms",
                          "mt",
                          "my",
                          "na",
                          "nb",
                          "nd",
                          "ne",
                          "ng",
                          "nl",
                          "nn",
                          "no",
                          "nr",
                          "nv",
                          "ny",
                          "oc",
                          "oj",
                          "om",
                          "or",
                          "os",
                          "pa",
                          "pi",
                          "pl",
                          "ps",
                          "pt",
                          "qu",
                          "rm",
                          "rn",
                          "ro",
                          "ru",
                          "rw",
                          "sa",
                          "sc",
                          "sd",
                          "se",
                          "sg",
                          "si",
                          "sk",
                          "sl",
                          "sm",
                          "sn",
                          "so",
                          "sq",
                          "sr",
                          "ss",
                          "st",
                          "su",
                          "sv",
                          "sw",
                          "ta",
                          "te",
                          "tg",
                          "th",
                          "ti",
                          "tk",
                          "tl",
                          "tn",
                          "to",
                          "tr",
                          "ts",
                          "tt",
                          "tw",
                          "ty",
                          "ug",
                          "uk",
                          "ur",
                          "uz",
                          "ve",
                          "vi",
                          "vo",
                          "wa",
                          "wo",
                          "xh",
                          "yi",
                          "yo",
                          "za",
                          "zh",
                          "zu"
                        ],
                        "description": "The ISO 639-1 code of the language the seed itself is written in, detected once by Kairon."
                      },
                      "translations": {
                        "type": "object",
                        "propertyNames": {
                          "type": "string",
                          "enum": [
                            "aa",
                            "ab",
                            "ae",
                            "af",
                            "ak",
                            "am",
                            "an",
                            "ar",
                            "as",
                            "av",
                            "ay",
                            "az",
                            "ba",
                            "be",
                            "bg",
                            "bh",
                            "bi",
                            "bm",
                            "bn",
                            "bo",
                            "br",
                            "bs",
                            "ca",
                            "ce",
                            "ch",
                            "co",
                            "cr",
                            "cs",
                            "cu",
                            "cv",
                            "cy",
                            "da",
                            "de",
                            "dv",
                            "dz",
                            "ee",
                            "el",
                            "en",
                            "eo",
                            "es",
                            "et",
                            "eu",
                            "fa",
                            "ff",
                            "fi",
                            "fj",
                            "fo",
                            "fr",
                            "fy",
                            "ga",
                            "gd",
                            "gl",
                            "gn",
                            "gu",
                            "gv",
                            "ha",
                            "he",
                            "hi",
                            "ho",
                            "hr",
                            "ht",
                            "hu",
                            "hy",
                            "hz",
                            "ia",
                            "id",
                            "ie",
                            "ig",
                            "ii",
                            "ik",
                            "io",
                            "is",
                            "it",
                            "iu",
                            "ja",
                            "jv",
                            "ka",
                            "kg",
                            "ki",
                            "kj",
                            "kk",
                            "kl",
                            "km",
                            "kn",
                            "ko",
                            "kr",
                            "ks",
                            "ku",
                            "kv",
                            "kw",
                            "ky",
                            "la",
                            "lb",
                            "lg",
                            "li",
                            "ln",
                            "lo",
                            "lt",
                            "lu",
                            "lv",
                            "mg",
                            "mh",
                            "mi",
                            "mk",
                            "ml",
                            "mn",
                            "mr",
                            "ms",
                            "mt",
                            "my",
                            "na",
                            "nb",
                            "nd",
                            "ne",
                            "ng",
                            "nl",
                            "nn",
                            "no",
                            "nr",
                            "nv",
                            "ny",
                            "oc",
                            "oj",
                            "om",
                            "or",
                            "os",
                            "pa",
                            "pi",
                            "pl",
                            "ps",
                            "pt",
                            "qu",
                            "rm",
                            "rn",
                            "ro",
                            "ru",
                            "rw",
                            "sa",
                            "sc",
                            "sd",
                            "se",
                            "sg",
                            "si",
                            "sk",
                            "sl",
                            "sm",
                            "sn",
                            "so",
                            "sq",
                            "sr",
                            "ss",
                            "st",
                            "su",
                            "sv",
                            "sw",
                            "ta",
                            "te",
                            "tg",
                            "th",
                            "ti",
                            "tk",
                            "tl",
                            "tn",
                            "to",
                            "tr",
                            "ts",
                            "tt",
                            "tw",
                            "ty",
                            "ug",
                            "uk",
                            "ur",
                            "uz",
                            "ve",
                            "vi",
                            "vo",
                            "wa",
                            "wo",
                            "xh",
                            "yi",
                            "yo",
                            "za",
                            "zh",
                            "zu"
                          ]
                        },
                        "additionalProperties": {
                          "type": "string",
                          "minLength": 1
                        },
                        "description": "One translated seed per ISO 639-1 code. Each must keep every `{{…}}` slot byte-exact and in order, and the same number of `---` lines, or publish refuses it."
                      }
                    },
                    "required": [
                      "seedHash",
                      "seedLanguage",
                      "translations"
                    ]
                  },
                  "reviewBeforeSend": {
                    "description": "Default false. True holds every send this step drafts for the operator to approve, even when the campaign is on autopilot. Nothing is scheduled until they approve it.",
                    "type": "boolean"
                  },
                  "verifyBeforeSend": {
                    "description": "DEPRECATED, and accepted only so campaigns published before the rename still parse. Set `reviewBeforeSend` instead; if both are present the new one wins.",
                    "type": "boolean"
                  },
                  "adaptToCulture": {
                    "description": "Retired: accepted for old steps and ignored. Do not send it.",
                    "type": "boolean"
                  }
                },
                "additionalProperties": false,
                "description": "Settings for this step type. The fields differ per `type`."
              },
              "uiPosition": {
                "type": "object",
                "properties": {
                  "x": {
                    "type": "number"
                  },
                  "y": {
                    "type": "number"
                  }
                },
                "required": [
                  "x",
                  "y"
                ]
              }
            },
            "required": [
              "key",
              "type",
              "config",
              "uiPosition"
            ]
          },
          {
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80,
                "description": "A stable id you choose for this step; edges and `campaign_edit_graph` name it by this key. Unique within the graph."
              },
              "type": {
                "type": "string",
                "const": "wait_connection_accepted",
                "description": "Which kind of step this is. It decides the shape of `config`, and which outcome edges the step may route on."
              },
              "config": {
                "type": "object",
                "properties": {
                  "timeoutDays": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 30,
                    "description": "How many whole days to wait for the invite to be accepted, 1-30. On expiry the run leaves by the `timeout` edge; wire one or those leads stop here."
                  },
                  "withdrawOnTimeout": {
                    "description": "Withdraw the pending invite when the wait times out. Default true — it reclaims LinkedIn pending-invite quota, which is capped. Set false to leave the invite standing, so someone who accepts weeks later still lands on the `accepted` edge of a later wait.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "timeoutDays"
                ],
                "additionalProperties": false,
                "description": "Settings for this step type. The fields differ per `type`."
              },
              "uiPosition": {
                "type": "object",
                "properties": {
                  "x": {
                    "type": "number"
                  },
                  "y": {
                    "type": "number"
                  }
                },
                "required": [
                  "x",
                  "y"
                ]
              }
            },
            "required": [
              "key",
              "type",
              "config",
              "uiPosition"
            ]
          },
          {
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80,
                "description": "A stable id you choose for this step; edges and `campaign_edit_graph` name it by this key. Unique within the graph."
              },
              "type": {
                "type": "string",
                "const": "delay",
                "description": "Which kind of step this is. It decides the shape of `config`, and which outcome edges the step may route on."
              },
              "config": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 43200,
                    "description": "How long to pause before the next step, counted in `unit`. The total may not exceed 30 days."
                  },
                  "unit": {
                    "type": "string",
                    "enum": [
                      "minutes",
                      "hours",
                      "days"
                    ],
                    "description": "The unit `value` is counted in. Use `minutes`/`hours` for the hot follow-up right after an invite is accepted, `days` for a nurture gap. Counted in real time, not send windows — the next step then waits for the window to open."
                  }
                },
                "required": [
                  "value",
                  "unit"
                ],
                "additionalProperties": false,
                "description": "Settings for this step type. The fields differ per `type`."
              },
              "uiPosition": {
                "type": "object",
                "properties": {
                  "x": {
                    "type": "number"
                  },
                  "y": {
                    "type": "number"
                  }
                },
                "required": [
                  "x",
                  "y"
                ]
              }
            },
            "required": [
              "key",
              "type",
              "config",
              "uiPosition"
            ]
          },
          {
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80,
                "description": "A stable id you choose for this step; edges and `campaign_edit_graph` name it by this key. Unique within the graph."
              },
              "type": {
                "type": "string",
                "const": "wait_reply",
                "description": "Which kind of step this is. It decides the shape of `config`, and which outcome edges the step may route on."
              },
              "config": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 43200,
                    "description": "How long to wait for the lead to reply, counted in `unit`. The total may not exceed 30 days."
                  },
                  "unit": {
                    "type": "string",
                    "enum": [
                      "minutes",
                      "hours",
                      "days"
                    ],
                    "description": "The unit `value` is counted in. `minutes`/`hours` for a same-day nudge, `days` for a normal follow-up gap."
                  }
                },
                "required": [
                  "value",
                  "unit"
                ],
                "additionalProperties": false,
                "description": "Settings for this step type. The fields differ per `type`."
              },
              "uiPosition": {
                "type": "object",
                "properties": {
                  "x": {
                    "type": "number"
                  },
                  "y": {
                    "type": "number"
                  }
                },
                "required": [
                  "x",
                  "y"
                ]
              }
            },
            "required": [
              "key",
              "type",
              "config",
              "uiPosition"
            ]
          },
          {
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1,
   

# --- truncated at 32 KB (235 KB total) ---
# Full source: https://artifacts.apis.io/heykairon-com/json-schema/heykairon-com-campaign-draft-dto-schema.json

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/heykairon-com-campaign-draft-dto"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.