An owner/admin writes the unit a member actually opens. A lesson carries a title, Markdown content, one video reference and an ordered list of resources. It belongs to a program and can be placed in a course and optional section. A lesson teaches; a task requests proof.
Open Agentic AI Developer → Lessons and create First tool call with instructions for invoking a tool and checking its response. Put it in Build an agent → Tool calling. The lesson starts as a draft, so an enrolled member cannot see it yet. Integrations can create a lesson and move it.
Add the written explanation first. For a downloadable file, upload it and attach the returned media reference to the lesson; for a web resource, attach a link instead. A resource is one shape, file or link, never both. The lesson resource upload and attach resource pages show the exact contract; the Media API covers the shared library.
If the lesson needs a video, start its video upload, send the file directly to the host using the returned signed credentials, and wait for processing before relying on playback. The player address is associated with the lesson when upload is prepared; that does not mean the file is ready to watch.
Review the text, resources and playback, then use the lesson publication control or Publish lesson. Check the member view from an eligible enrollment: a published lesson can appear in the member's content, subject to the program and path's access rules. Publishing the lesson does not activate a draft program.
| State | Member result | Operator move |
|---|---|---|
| Draft | Hidden | Finish text and media before publishing |
| Published | Available within the member's permitted journey | Check playback and links as a member |
| Archived | Removed from normal delivery | Unlike archived programs or courses, a lesson can be published again |
Warning
If the video player is empty after the upload call, check that the file was sent with the returned credentials and has completed processing. Repeating video upload creates a new video; its idempotency header does not replay the old one. If a resource is rejected, confirm its media belongs to this school and attach only the returned media reference or a valid link.
Continue with milestones and paths to connect this lesson to an outcome, then tasks and deliverables to request evidence. The Lessons API describes authoring operations; a program director can read lessons within scope but cannot write them.