Engineering manualSchema reference
Funnel Map
Declared schema: schemas/funnel-map.schema.json
Source: schemas/funnel-map.schema.json. This is the complete declaration, including nested definitions and constraints. Its presence is not evidence that a runtime producer or consumer validates against it.
All schemas · Data structures and lineage
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Funnel Map",
"type": "object",
"additionalProperties": true,
"required": [
"id",
"campaign_id",
"brand_id",
"funnel_model",
"audience",
"incentive",
"cta",
"target_stages",
"metrics",
"stages"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"campaign_id": {
"type": "string",
"minLength": 1
},
"brand_id": {
"type": "string",
"minLength": 1
},
"open_design_design_system_id": {
"type": "string",
"minLength": 1
},
"funnel_model": {
"type": "string",
"minLength": 1
},
"audience": {
"type": "object",
"additionalProperties": true,
"required": [
"primary_persona_id",
"summary"
],
"properties": {
"primary_persona_id": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "string",
"minLength": 1
}
}
},
"incentive": {
"type": "object",
"additionalProperties": true,
"required": [
"id",
"summary",
"offered_value"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "string",
"minLength": 1
},
"offered_value": {
"type": "string",
"minLength": 1
}
}
},
"cta": {
"type": "object",
"additionalProperties": true,
"required": [
"id",
"label",
"action"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"label": {
"type": "string",
"minLength": 1
},
"action": {
"type": "string",
"minLength": 1
}
}
},
"target_stages": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"enum": [
"tofu",
"mofu",
"bofu",
"awareness",
"consideration",
"conversion",
"loyalty",
"advocacy"
]
}
},
"metrics": {
"type": "array",
"minItems": 1,
"items": {
"type": "object"
}
},
"stages": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": true,
"required": [
"id",
"funnel_stage",
"objective",
"audience_state",
"message_role",
"primary_question",
"content_strategy",
"recommended_asset_types",
"cta_id",
"proof_needed",
"success_criteria",
"validation_rules"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"funnel_stage": {
"type": "string",
"enum": [
"tofu",
"mofu",
"bofu",
"awareness",
"consideration",
"conversion",
"loyalty",
"advocacy"
]
},
"objective": {
"type": "string",
"minLength": 1
},
"audience_state": {
"type": "string",
"minLength": 1
},
"message_role": {
"type": "string",
"minLength": 1
},
"primary_question": {
"type": "string",
"minLength": 1
},
"content_strategy": {
"type": "string",
"minLength": 1
},
"recommended_asset_types": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
}
},
"cta_id": {
"type": "string",
"minLength": 1
},
"proof_needed": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
}
},
"success_criteria": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
}
},
"validation_rules": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
}
}
}
}
}
}
}