The Content Repository in Reels works like a headless CMS.
Instead of hardcoding values, you can store, manage, and fetch content dynamically via APIs.
Itβs a centralized hub where structured data (like text, dropdown values, policy details, FAQs, offers, configurations, etc.) can be defined once and reused anywhere.
Why Use It?
Dynamic updates β Change content on the fly
Reusable data β The same content can be consumed across multiple apps/services
Easy to manage β Content can be added/edited anytime via UI or APIs
Efficiency β Reduces repeated code changes and speeds up updates
Example: Insurance Industry
Imagine an insurance company managing policy details and premium plans across their apps:
With Content Repository β New policy details are added into the repository (via UI or internal process). Apps fetch it via API, and customers instantly see the updated content.
This makes it easier to:
Launch new products faster
Update claim process info instantly
What is a Schema?
A schema is the structure of your data. It defines what content can exist, the fields it must have, their data types, and formats.
Think of it as a blueprint for your content.
Example fields for an insurance policy schema:
policyNameβ stringpremiumAmountβ numbercoverageDetailsβ text/markdowneligibilityCriteriaβ JSON objectcontactEmailβ email
Schemas ensure all content follows a consistent structure, making it easy to fetch, display, and reuse dynamically across apps, workflows, and documents.
How It Works (with APIs & Examples)
Create a Schema
POST {{baseUrl}}/api/schemas/create
Payload Example:
{"schemaName": "InsurancePolicy","schema": {"type": "object","properties": {"policyName": { "type": "string", "format": "input" },"premiumAmount": { "type": "string", "format": "number" },"coverageDetails": { "type": "string", "format": "markdown" },"eligibilityCriteria": { "type": "string", "format": "json" },"contactEmail": { "type": "string", "format": "email" }}},"description": "Schema for storing dynamic insurance policy data","tags": ["insurance", "policy"] }
Response Example:
{"schemaId": "062a69c2-e1d7-4728-86c0-164fb1531eee","schemaName": "InsurancePolicy","description": "Schema for storing dynamic insurance policy data" }
Fetch a Schema by ID
GET {{baseUrl}}/api/schemas/{schemaId}
Response Example:
{"schemaId": "062a69c2-e1d7-4728-86c0-164fb1531eee","schemaName": "InsurancePolicy","schema": {"policyName": "string","premiumAmount": "string","coverageDetails": "string","eligibilityCriteria": "json","contactEmail": "string"} }
Fetch Content Using Schema
POST {{baseUrl}}/api/one
Payload Example (Fetch Content):
{"schemaId": "062a69c2-e1d7-4728-86c0-164fb1531eee","filter": { "policyName": "Family Health Protect Plan" } }
Response Example:
{"policyName": "Family Health Protect Plan","premiumAmount": "500","coverageDetails": "Covers family of 4 with wellness benefits","eligibilityCriteria": {"minAge": 18,"maxAge": 60},"contactEmail": "support@insureco.com" }
Note:
/api/oneis used only for fetching content based on the schema. Adding or updating content is handled via the UI or backend process; no separate API is required.
Example with Workflow
Imagine a workflow for insurance claims:
- A customer submits a claim.
- The workflow calls the Content Repository API (
/api/one) to fetch the claim process steps (stored using a schema). - The portal displays the correct claim process instantly.
- The same data is reused in emails and notifications.
Result: One central source of truth feeds all systems efficiently.
Additional Advantage β Generate PDF
POST {{baseUrl}}/api/genaral/generate-by-data
Use Cases:
- Insurance policy PDFs
- Claim reports
- Customer onboarding forms
Benefits Recap
- Define schema once β Use everywhere
- Add/update content dynamically (via UI or backend)
- Fetch and display structured data instantly
- Generate PDFs dynamically from the same data
- Keep apps, workflows, and documents consistent
In short:
The Content Repository in Reels = your API-driven dynamic content hub, perfect for keeping apps fresh, consistent, and fast to update.
Thanks @Rocky , for guiding me through the entire process