Here’s a detailed overview of the engage feature. engage lets your chat models proactively (or reactively) reach out to users, either in manual or fully automatic mode.

1. What is replyParameters.engage?

This is a top-level enum that tells our chat model how to send an extra message in a conversation. Possible values:
  • ICEBREAKER: start a brand-new conversation using available or missing information from the user’s profile
  • NUDGE: follow up on the last message in the conversation
  • REVIVE: restart an older conversation (stale thread)
  • AUTO: let the model choose between ICEBREAKER, NUDGE, or REVIVE based on inactivity

2. Manual modes

ICEBREAKER

Use ICEBREAKER when there’s no prior message. By default, the model uses the AUTO icebreaker angle. To force a specific approach, set IcebreakerType. The model will inspect the user’s profile and craft an opener that sparks a reply.
type IcebreakerType =
  | "AUTO"           // model chooses the best angle
  | "NO_PHOTO"       // user has no profile photo
  | "MISSING_DETAIL" // profile missing key info
  | "MUCH_YOUNGER"   // user is ≥ 7 years younger
  | "MUCH_OLDER"     // user is ≥ 7 years older
  | "NEARBY"         // user is within 10 km
  | "GENERIC"        // universal opener
  | "USER_ONLINE"    // user is currently online
  | "USER_OFFLINE"   // user is offline
  | "JUST_JOINED";   // user just signed up

NUDGE

Use NUDGE if the user hasn’t replied in the last few hours. It keeps the conversation alive without changing topic.

REVIVE

Use REVIVE to bring back a conversation that’s gone cold (e.g. ≥ 6 hours since the last user message). The model will reference the last exchange or pivot to a fresh angle.

3. Automatic mode

Set engage to AUTO and the model picks:
  • ICEBREAKER when there’s no chat history
  • NUDGE if the last message was sent < 6 hours ago
  • REVIVE if the last message was sent ≥ 6 hours ago
This frees your orchestration layer from timing logic—just hand off to the model.

Why use engage?

  • Boost engagement with smart openers and follow-ups
  • Single integration point: one parameter controls all re-engagement flows
  • Fine-tuned icebreakers via IcebreakerType when you need more nuance