Resources
FLOCO JSON Payload

FLOCO JSON Payload

Prepare FLOCO category, level, and lesson JSON for Content Integration expansion.

Content Integration accepts the customer's existing JSON as the source of record. The pilot payload should include one category, one level, and the lessons inside that level.

Minimum shape

{
  "category": "Vocabulary",
  "language": "en",
  "level": {
    "id": "glossary-a1",
    "title": "A1 glossary",
    "lessons": [
      {
        "id": "lesson-1",
        "type": "term",
        "title": "Greetings",
        "terms": [
          {
            "term": "hello",
            "meaning": "a greeting",
            "example": "Hello, Min."
          }
        ]
      }
    ]
  }
}

Full pilot example

Use one category and one level for the pilot. Include all lessons in their current FLOCO shape. TutorFlow keeps unknown fields in the prompt context, so the customer does not need to convert content before submission.

{
  "category": {
    "id": "vocabulary",
    "title": "Vocabulary"
  },
  "language": "ko",
  "level": {
    "id": "glossary-a1",
    "title": "A1 glossary",
    "lessons": [
      {
        "id": "lesson-term-1",
        "type": "term",
        "title": "Basic greetings",
        "terms": [
          {
            "term": "hello",
            "meaning": "a greeting used when meeting someone",
            "example": "Hello, Mina."
          }
        ]
      },
      {
        "id": "lesson-example-1",
        "type": "example",
        "title": "Greeting examples",
        "examples": [
          {
            "source": "Good morning.",
            "translation": "좋은 아침입니다.",
            "note": "Use in the morning."
          }
        ]
      },
      {
        "id": "lesson-dialogue-1",
        "type": "dialogue",
        "title": "Meeting a classmate",
        "turns": [
          {
            "speaker": "A",
            "text": "Hello. What is your name?"
          },
          {
            "speaker": "B",
            "text": "My name is Mina."
          }
        ]
      },
      {
        "id": "lesson-quiz-1",
        "type": "quiz",
        "title": "Greeting check",
        "questions": [
          {
            "question": "Which phrase is a greeting?",
            "choices": ["Hello", "Blue", "Desk"],
            "answer": "Hello",
            "explanation": "Hello is used to greet someone."
          }
        ]
      },
      {
        "id": "lesson-review-1",
        "type": "review",
        "title": "Level review",
        "summary": "Review greetings, names, and simple introductions.",
        "keyPoints": ["hello", "my name is", "good morning"]
      }
    ]
  }
}

Lesson type handling

The integration keeps lesson order and preserves unknown fields in the prompt context. For the pilot, include the five lesson types currently used in FLOCO with their real field names.

TypeExpected contentReturned expansion behavior
termVocabulary, glossary entries, meanings, examplesBecomes guided concept explanation, practice checks, and review prompts.
exampleUsage examples, translations, notes, explanationsBecomes worked examples and instructor-style explanation blocks.
dialogueSpeaker turns and conversational practiceBecomes role-play prompts, comprehension checks, and video scene material.
quizExisting checks, answer keys, hints, explanationsSeeds expanded quiz items while preserving answer intent.
reviewSummary, key points, level review contentBecomes wrap-up sections, recap scenes, and final review questions.

If your production schema uses different type names, keep the original values. TutorFlow will normalize them during pilot mapping.

Payload guidance

  • Include stable ids for category, level, and lessons.
  • Keep source text, examples, answer keys, hints, and explanations in the payload.
  • Include language or locale if the content is not English.
  • Do not pre-convert lesson text into TutorFlow formats. Send the current JSON structure.
  • Send one level per pilot request so output review stays manageable.

Validation checklist

  • The payload is valid JSON.
  • The level contains at least one lesson.
  • Each lesson has a stable id and type.
  • Quiz answers are included when available.
  • Customer-owned copyright status is confirmed before submission.