Docs Join alpha
Build

Conversational task

A coached chat tuned by the engagement levers in conversationSpec.

What you'll build

A kid sits down with the Sprout app and gets into a coached chat: a daily journal, an explain-it-back, a quick debate, a language practice session. Sprout asks, listens, reflects, doesn't push past what the kid wants to share. The transcript becomes input for downstream analysis if you want it.

The artifact is a task in the kid app with runMode: "conversation", tuned by the engagement levers in conversationSpec.

Pieces you'll combine

Build it

One call, but every field matters. The conversationSpec object is where the personality of the conversation lives.

Shell
task.create({
name: "<chat name>",
assignChildIds: ["<kidId>"],
runMode: "conversation",
conversationSpec: {
goalType: "share",         // share | explain | debate | practice
guidance: `<What Sprout should ask about. Be specific.
Topic, sequence, vocabulary cap, tone.
1000 char max.>`,
minResponses: 3,           // anti-bounce floor
effort: "balanced",        // lenient | balanced | strict
grading: "engagement",     // engagement | correctness
dailyTarget: 1             // submissions per day toward completion
},
scheduleSpec: {
taskType: "onetime",
oneTimeDate: "2026-05-24",
startMinutes: 480          // minutes from midnight (480 = 8am)
},
rewardSpec: { gems: 3 }
})
# Returns { taskId }

The levers in conversationSpec:

When to use it

Tools touched

Recommended skills

Drop these into your library to compose with this pattern.

Daily check-in openertemplateScreen readerin prod

Seen in walkthroughs

Solar system learning loop Chore + photo proof

Was this page helpful?