Gyms - sign-up agent

Written By William Bowen

Last updated 15 days ago

Intro

This AI SMS agent for gyms automatically engages new sign-ups and leads via text, extracting their fitness goals and challenges to personalize responses and update their contact profile in Clerk Chat and your CRM.

For example, if Sarah wants to lose weight but struggles with motivation, the AI recognizes this, offers tailored encouragement, and suggests a personal trainer who specialises in this area—boosting gym sign-ups and retention effortlessly.

Use cases

  1. Lead Conversion: The AI nurtures potential members by engaging them in a personalized conversation about their fitness goals.
    Example: John inquires about your gym, and the AI asks about his goals. He mentions wanting to build muscle, so the AI shares success stories and invites him for a free trial session.

  2. Goal-Based Program Recommendations: The AI suggests specific classes, trainers, or programs based on user goals.
    Example: Emma wants to improve flexibility, so the AI recommends yoga and pilates classes and offers her a first-session discount.

  3. Motivation & Retention: The AI follows up with members who haven’t visited the gym recently, encouraging them to return.
    Example: After missing two weeks, Mark receives a message reminding him of his original goal—getting in shape for summer—and suggesting a personal trainer session.

  4. Objection Handling: The AI addresses common concerns like cost, time, or lack of experience.
    Example: Lisa worries she’s too busy to work out. The AI suggests a 30-minute HIIT class that fits her schedule and reminds her that small steps lead to big results.

  5. Challenge Tracking & Progress Updates: The AI tracks members' challenges and offers solutions to help them stay on course.
    Example: Jake struggles with meal planning, so the AI provides meal prep tips and a link to a nutrition consultation service.

  6. Re-Engaging Canceled or Expired Members: The AI follows up with past members to bring them back.
    Example: Mike’s membership expired last month, so the AI messages him, reminding him of the progress he made and offering a limited-time renewal discount.

  7. Referral Incentives: The AI encourages members to refer friends by making it easy to share special referral offers.
    Example: Sophie is loving her workouts, so the AI offers her a free personal training session if she refers a friend who joins.

  8. Personalized Workout Suggestions: The AI provides relevant exercise routines based on goals and preferences.
    Example: Dave wants to build endurance, so the AI recommends a running plan and invites him to a group training session.

  9. Seasonal & Event Promotions: The AI notifies members of special gym events, seasonal programs, or limited-time discounts.
    Example: With summer approaching, the AI messages members about a “6-Week Summer Body Challenge” and offers early-bird pricing.

  10. Upselling Additional Services: The AI identifies opportunities to sell premium memberships, personal training, or supplements.
    Example: Mia frequently asks about recovery tips, so the AI recommends the gym’s massage therapy service and offers her a free first session.

Screenshots

Template

Example
{ "$schema": "https://web-api.clerk.chat/pipeline-schema", "name": "Gyms - new sign up agent", "nodes": [ { "type": "tool_runner", "name": "Knowledge base search", "triggeredBy": [ "unreadMessage.fromAny" ], "responseType": "json", "nodeConfig": { "type": "knowledge_base", "config": {}, "enabledTools": [ "search" ], "tools": { "search": { "paramValues": { "query": { "path": "content", "type": "pipeline-variable" } } } } } }, { "type": "ai_bot", "name": "Converse", "triggeredBy": [ "unreadMessage.fromAny" ], "responseType": "user_message", "nodeConfig": { "modelProvider": "openai", "modelVersion": null, "maxTokens": null, "temperature": null, "variables": {}, "prompt": "Your job is converse with the user. You should ask questions to understand their goals and challenges. Only ask one question at a time (e.g. either about goals OR challenges, not at the same time). \n\nStart by understanding the user's goals. \n\nThen ask what their current challenges are in relation to achieving these goals. \n\nThe final step is to conclude the conversation. \n\nIt may help to know you are working for a gym and conversing with new or potential members. Therefore you should try nudge them to sign up and show how the gym can help them overcome their challenges and achieve their goals. \n\nWhen relevant, there may be some information from the knowledge base you can use to improve your answer. If there is any knowledge, it will be below: \n\nExtra knowledge: {{content}}\n\nYour output should be maximum 40 words.", "promptSections": [], "sectionTemplates": {}, "responseSchema": { "type": "object", "required": [], "properties": {} }, "opts": { "sendStructuredConvo": true } } }, { "type": "tool_runner", "name": "Update goals", "triggeredBy": [ "unreadMessage.fromAny" ], "responseType": "json", "nodeConfig": { "type": "contact_tools", "config": {}, "enabledTools": [ "set_attribute" ], "tools": { "set_attribute": { "paramValues": { "attributeName": { "type": "fixed", "value": "Goals" }, "attributeValue": { "path": "goals", "type": "pipeline-variable" } } } } } }, { "type": "tool_runner", "name": "Update challenges", "triggeredBy": [ "unreadMessage.fromAny" ], "responseType": "json", "nodeConfig": { "type": "contact_tools", "config": {}, "enabledTools": [ "set_attribute" ], "tools": { "set_attribute": { "paramValues": { "attributeName": { "type": "fixed", "value": "Challenges" }, "attributeValue": { "path": "challenges", "type": "pipeline-variable" } } } } } }, { "type": "ai_bot", "name": "Extract goals + challenges", "triggeredBy": [ "unreadMessage.fromAny" ], "responseType": "json", "nodeConfig": { "modelProvider": "openai", "modelVersion": null, "maxTokens": null, "temperature": null, "variables": {}, "prompt": "You are working for a gym and are conversing with a new sign-up/someone who has shown interest. \n\nYour job is to read the conversation history and extract the user's goals and challenges in relation to the gym. \n\nExtract as much information as possible about each. \n\nOutput goals under \"goals\". \nOutput challenges under \"challenges\"", "promptSections": [], "sectionTemplates": {}, "responseSchema": { "type": "object", "required": [ "goals", "challenges" ], "properties": { "goals": { "type": "string" }, "challenges": { "type": "string" } } }, "opts": { "sendStructuredConvo": true } } }, { "type": "trigger", "name": "Start", "triggeredBy": [ "userMessage" ], "responseType": "json" } ], "edges": [ { "name": null, "sourceNode": "Knowledge base search", "destinationNode": "Converse", "sourceVariables": null, "filters": [] }, { "name": null, "sourceNode": "Update goals", "destinationNode": "Knowledge base search", "sourceVariables": null, "filters": [] }, { "name": "If goals is not empty", "sourceNode": "Update challenges", "destinationNode": "Update goals", "sourceVariables": null, "filters": [] }, { "name": "If challenges is not empty", "sourceNode": "Extract goals + challenges", "destinationNode": "Update challenges", "sourceVariables": null, "filters": [] }, { "name": null, "sourceNode": "Start", "destinationNode": "Extract goals + challenges", "sourceVariables": null, "filters": [] } ] }