- Brand
- Unknown
- Category
- Pending
- Primary Subcategory
- Pending
Integration details
Description
Connect your existing Ekklo coach account to find clients, read training and nutrition plans, review appointments and manage your coaching workspace. The server also exposes actions that create, update or delete data and send client communications. Access follows the connected account permissions and API/MCP quota. Review OAuth access and tool confirmations before use. Coaching follow-up and nutrition records can include personal health information; only request data you are authorized to share with your assistant. See the public connection guide for account prerequisites, troubleshooting and revocation.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Category
- Pending
- Primary Subcategory
- Pending
- Secondary Subcategories
- None listed
- Brand
- Unknown
- Access
- Account required
- First tracked
- 2026-10-31
- Tool count
- 32
- Market
- US
The broad Category that contains the Primary Subcategory.
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Ekklo
Get updates when Ekklo’s Discoverability Score or category rank changes.
Competitive lineup
32 tools agents can invoke
Use this when reading the coach's autoflows (automated client sequences), their steps, assignments, and execution state. WHEN TO USE - This is the primary autoflow read tool, not the writer. - list/get cover templates; steps lists a template's steps; assignments/assignment cover what is assigned to clients; executions shows scheduled/ran/failed steps; future_steps and trigger_history answer "what is queued / what fired". COMMON MISTAKES - Do not write here — use save_autoflow. - Read first to get the current autoflow_id / assignment_id / step_id before editing. EXAMPLES - {"method":"list"} - {"method":"assignment","assignment_id":"<assignment_id>"}
autoflow_read
Use this when checking whether MCP is connected. WHEN TO USE - This is the primary connection diagnostic, not CRM. COMMON MISTAKES - Pass no args. EXAMPLES - {}
check_ekklo_connection
Use this when reading conversations or templates. WHEN TO USE - This is the primary messaging read tool, not sender. - Use response_format="concise" for display-only lists; use "detailed" before sending or editing with returned IDs. - method="messages" with detailed adds content_ref target IDs, read receipts, and a participant online/pinned summary. COMMON MISTAKES - Do not send. EXAMPLES - {"method":"messages","customer":"Marie"}
conversation_read
Use this when reading client CRM data. WHEN TO USE - This is the primary customer read tool, not prospects. - Use response_format="concise" for display-only reads; use "detailed" before save_customer or save_customer_note. - Use method="attention_queue" for "who should I contact?", declining client activity, or a bounded recap of priority clients. It computes the whole active roster server-side in one read; never loop over clients. It ranks engagement/follow-up evidence, not physiological progress. It never sends a message. - Use method="credits" for one client's current credit balance and recent transactions. - Use method="metric_logs" with assignment_id for one metric assignment's full logged history (dates, values, notes); get the assignment_id from method="metric_assignments". COMMON MISTAKES - Do not mutate or diagnose. EXAMPLES - {"method":"get","query":"Marie"} - {"method":"attention_queue","last_days":28,"limit":10}
customer_read
Use this when reading establishment data. WHEN TO USE - This is the primary establishment read tool. - stats: visibility/reputation; analytics: measured sessions, sources, contacts, first paid receipts, coverage and audience; analytics_clients: paginated identified clients (period/source/status); tracked_link: UTM link (destination/source/medium/campaign). - Contacts and first receipts are independent period cohorts, not a conversion rate. Unknown origins remain explicit. - dashboard: business KPIs; activity: conversion counts and timeline; coach_info: own account identity. - Credits: credits_settings, credit_balances, credit_transactions. - Use detailed before save_establishment; concise for display. COMMON MISTAKES - Never identify anonymous visits or treat receipts as net revenue. Declared provenance edits use save_establishment(method="declared_origin",customer_id,source). EXAMPLES - {"method":"analytics","period":"90d"}
establishment_read
Use this when reading a citable Ekklo document returned by search. WHEN TO USE - This is the primary document fetch: title, text, URL and metadata. - Program text uses its draft when available, otherwise its published version; program_view identifies it. COMMON MISTAKES - Use an exact typed document ID, never a URL or an operation name. - Access is re-checked. Over 128 KiB needs narrower domain reads. EXAMPLES - {"id":"program:00000000-0000-4000-8000-000000000001"}
fetch
Read this endpoint's server version, publication date, scoped tool count and exact available tool names. This is metadata, not current client data or subscription eligibility. Call with {}.
get_mcp_info
Read guidance for this endpoint's declared core workflows and their data hierarchy. Optional domain selects a supported workflow; this returns documentation, not current workspace records or IDs.
learn_ekklo
Read foods, recipes and nutrition-library records using the methods in this tool's schema. Resolve food or recipe IDs with the appropriate lookup method before saving a plan; recipe quantities are portions. Use concise lists for display and detailed records before editing. Ask the coach to choose ambiguous matches. General nutrition knowledge requires no workspace call.
nutrition_library_read
Use this when reading plans. WHEN TO USE - This is the primary plan read tool, not food lookup/write. - meal_templates finds owned meal templates by query/template_id with page/limit; ask for homonyms. - Details default concise; use response_format="detailed" when item-level edits need meal_item_id or equivalent IDs. - Keep day/meal/item IDs under their returned parent; new/copied children omit id. Stored item id differs from catalogue food_id/recipe_id. - Add expand=["totals"] for backend-computed kcal/macros per meal and per day plus targets-vs-realized. COMMON MISTAKES - Do not edit from memory. - Do not re-sum macro totals by hand; request expand=["totals"]. EXAMPLES - {"method":"details","nutrition_plan_id":"<plan_id>","expand":["totals"]}
nutrition_plan_read
Use this when reading prospects. WHEN TO USE - This is the primary lead read tool, not customer CRM. COMMON MISTAKES - For fields to collect, answer without tools. EXAMPLES - {"method":"list","stage":"discovery"}
prospect_read
Use this when reading questionnaires, assessments (bilans), or client submissions. WHEN TO USE - This is the primary questionnaire read tool, not the writer. - pending = completed assessments awaiting review; overdue = clients late on a recurring bilan. - assignments accepts optional customer_id/questionnaire_id filters; copy assignment_id for submissions. COMMON MISTAKES - Do not write here — use save_questionnaire. EXAMPLES - {"method":"pending"}
questionnaire_read
Use this when writing appointments. WHEN TO USE - No id=create; id=patch; _delete:true deletes. - Read schedule_read(method=appointments,id=...). Echo expected_participant_ids, expected_participant_record_ids, expected_waitlist_entry_ids, even []. - cancel_many: appointments[]; max 20 reviewed IDs/snapshots/refund choices. Partial commits: check outcomes; reread failures. - refund_participant_ids: omit=credit policy; []=none; user IDs=credits. No card refund. - Group: is_group_class:true + coach-specified capacity > 0; ask if unknown; never guess. Omitted updates keep capacity. Individual capacity is optional. - recurrence_rule: create only; credits/email hit occurrence 1; send_email defaults false. COMMON MISTAKES - This is the primary RDV writer; blocks=save_calendar_event; sessions=save_program(schedule_session). EXAMPLES - {"client":"...","product":"...","start_time":"2026-06-16T10:00:00Z"}
save_appointment
Use this when writing autoflows, steps or client assignments. WHEN TO USE - This is the primary autoflow writer. - Create, then add_step(type, action_payload). COMMON MISTAKES - Read IDs with autoflow_read first. - Assignment needs client write access. EXAMPLES - {"method":"create_empty_assignment","customer_id":"<id>"}
save_autoflow
Use this when updating availability. Send ONE target. WHEN TO USE - This is the primary availability writer, not events. Targets: booking_rules (rules + 7 notification toggles); opening_hours (bookable per-weekday hours); calendar_settings (display window only); add/delete_exceptional_date (SpecialDay accepts time_slots[]). COMMON MISTAKES - Send one target object. - opening_hours = bookable hours; calendar_settings = display window only. EXAMPLES - {"method":"opening_hours","opening_hours":[{"day_of_week":"Monday","is_open":true,"time_slots":[{"start_time":"09:00","end_time":"18:00"}]}]}
save_booking_config
Use this when writing events: blocks, reminders, meetings, sessions, tasks. WHEN TO USE - This is the primary event writer, not the booker. Book a client RDV with save_appointment; a program session with save_program(schedule_session). Set calendar_id if the default calendar is read-only. Set create_meeting:true (+ email_receiver) to add a Google Meet link. - Repeating ("tous les vendredis pendant 3 mois"): event.recurrence_rule on create. COMMON MISTAKES - event_type=appointment is rejected here. - Timed creates need start/end. EXAMPLES - {"event":{"title":"Day off","event_type":"out_of_office"}} - {"event":{"title":"Bloc","event_type":"out_of_office","start_time":"2026-06-19T14:00:00+02:00","end_time":"2026-06-19T18:00:00+02:00","recurrence_rule":"FREQ=WEEKLY;COUNT=13"}}
save_calendar_event
Use this when inviting/updating customers. WHEN TO USE - update_customer routes here. This is the primary customer writer, not notes. - Before update/settings/resend, call customer_read(method="get", customer=...) and copy the returned etag into expected_etag. - Inviting emails the client by default. Say which channel you are using first; send_email:false returns a message to share instead. See learn_ekklo("clients"). COMMON MISTAKES - The notes field is the structured summary stored on the customer profile. Customer note records are created/updated with save_customer_note. EXAMPLES - {"method":"invite","email":"[email protected]","first_name":"Marie","last_name":"Martin"} - {"method":"update","customer":"Marie","expected_etag":"W/\"...\"","notes":"Prefers morning sessions."}
save_customer
Use this when writing notes. WHEN TO USE - create_customer_note routes here. This is the primary note writer. - Call customer_read(method="notes", customer=...) first. Copy the customer customer_etag for create, or that note's note_etag for update/delete, into expected_etag. COMMON MISTAKES - Use customer text if id missing. EXAMPLES - {"method":"create","customer":"Marie","content":"Prefers mornings.","expected_etag":"W/\"...\""}
save_customer_note
Use this when updating establishment. WHEN TO USE - This is the primary establishment writer, not billing/FAQ. - method="profile" also edits coaching_goals/disciplines/starred_goals/starred_disciplines (omit=keep, []=clear). - Credits: method="credit_settings" configures the feature; "gift_credits" (customer + amount) ADDS credits; "adjust_credits" (customer + new_balance) SETS an exact balance. Whole numbers only. COMMON MISTAKES - Do not create FAQs here. - gift_credits adds to the balance; adjust_credits replaces it. Do not confuse them. EXAMPLES - {"method":"profile","profile":{"name":"Coach Paris"}} - {"method":"gift_credits","customer":"Marie","amount":10}
save_establishment
Use this when writing catalogue exercises. WHEN TO USE - This is the primary exercise writer; program prescriptions use save_program. - Before create, use training_read methods get_exercise_filter_options, list_repetitions and list_resistances. - Send one exercise with name, youtube_url, body_part, target_body_part, equipment, repetition_unit_id, resistance_unit_id and instructions. Unit IDs must be returned UUIDs. - youtube_url must be a real YouTube video (watch, youtu.be, embed or Shorts). If unavailable, ask the coach or reuse an existing catalogue exercise. COMMON MISTAKES - Never invent units, classifications or video URLs; uploads/images/other providers are unsupported. - No parallel partial creates. Fix every reported field before retrying; do not repeat the same failed call. - Update with exercise.id; omitted fields stay unchanged. EXAMPLES - {"method":"favorite","exercise":{"id":"<exercise_id>"}}
save_exercise
Use this when logging a client's habit on the coach's behalf (create, edit, or delete a habit log). WHEN TO USE - This is the primary habit-log writer, not the metric/measure logger (use save_metric_log for numbers) and not the reader. - CREATE: assignment_id + log_date + value (value is free text, e.g. "6", "8 glasses", "done"). UPDATE: id + changed fields. DELETE: id + _delete:true. - log_date accepts YYYY-MM-DD or ISO 8601, so you can backfill history. COMMON MISTAKES - Find assignment_id via customer_read(method='habit_assignments'); a log id via get_habit_logs. - For numeric measures (weight, body fat), use save_metric_log. EXAMPLES - {"assignment_id":"<id>","log_date":"2026-01-15","value":"8 glasses"}
save_habit_log
Use this when writing templates. WHEN TO USE - This is the primary template writer, not sender. COMMON MISTAKES - Do not save drafts unless asked. EXAMPLES - {"template":{"name":"Weekly check-in","content":"How was it?"}}
save_message_template
Use this when logging a client's metric / measure (mesure) on the coach's behalf (create, edit, or delete a numeric log). WHEN TO USE - This is the primary measure-log writer, not the habit logger (use save_habit_log for free-text habits) and not the reader. - CREATE: assignment_id + date + value (value is a number, e.g. 80.5 kg or 18 percent body fat). UPDATE: id + changed fields. DELETE: id + _delete:true. - date accepts YYYY-MM-DD or ISO 8601, so you can backfill history. - unit (optional): pass the RAW number + its unit (e.g. value:180, unit:"lb"); the server converts to canonical. Units: weight (kg/lb/lbs), length (cm/mm/m/in/ft). Do NOT convert yourself; omit if already canonical (kg/cm). COMMON MISTAKES - Find assignment_id via customer_read(method='metric_assignments'); a log id via get_metric_logs. - value must be numeric; for free-text habits use save_habit_log. EXAMPLES - {"assignment_id":"<id>","date":"2026-01-15","value":80.5}
save_metric_log
Use this when creating/editing the coach's reusable recipes or custom food items. WHEN TO USE - This is the primary nutrition LIBRARY writer (recipes + custom foods), not a client's meal plan (use save_nutrition_plan). - create_recipe ingredients each need a food_id from nutrition_library_read(search_food_items). - update/delete take recipe_id or food_item_id. COMMON MISTAKES - Do not invent or reuse a food_id across ingredients. EXAMPLES - {"method":"create_food_item","name":"Oats","calories":380,"proteins":13,"carbs":67,"fats":7}
save_nutrition_library
Use this when writing nutrition plans. WHEN TO USE - This is the primary writer; method OR plan. Read IDs/expected_etag; retry unchanged. - duplicate_plan: nutrition_plan_id/name, optional customer_id/context_relation_id; draft. - save_meal_template: meal/name; copy_meal_template: template_id. - adjust_to_target: customer_id. COMMON MISTAKES - Resolve homonyms. EXAMPLES - {"plan":{"name":"Cut"}}
save_nutrition_plan
Use this when writing programs. WHEN TO USE - This is the primary writer; exercises use save_exercise. - program{}: no method; create title/type + is_template=true OR assign_to_customer_id. - Templates: duplicate_program(assign_to_customer_id,start_date); no assign_program. EXERCISE PREFLIGHT - Resolve exercise_name/variants: training_read(resolve_program_references). Ask the coach if ambiguous; use exact exercise_id. Unresolved=no writes. UNITS / VARIANTS - repetition_unit/resistance_unit: name/short/UUID; omit=defaults. Use training_read(list_repetitions/list_resistances). - variants[]: substitutions, not media_variant_id. Merge by id; omit=unchanged. COMMON MISTAKES - training_read(get_program_draft): exact parent IDs; new/copied nodes omit IDs. - Shared/team reads grant no writes; no denial retries. - create_program/create_full_program are not methods. EXAMPLES - {"program":{"title":"A","type":"cycle","is_template":true}}
save_program
Use this when writing leads. WHEN TO USE - This is the primary prospect writer, not customer writer. COMMON MISTAKES - Do not use save_customer for leads. EXAMPLES - {"first_name":"Alex","email":"[email protected]"}
save_prospect
Use this when writing or reviewing questionnaires and assessments (bilans). WHEN TO USE - This is the primary questionnaire write tool, not the reader. - create then add_questions_bulk; assign needs customer_id + start_date + assignment_period. - create_submission fills a bilan on behalf of a client; update_submission/delete_submission edits/removes it. Answers are strings; media=https URL. COMMON MISTAKES - Read first with questionnaire_read to get current IDs (assignment_id, question_ids). - For create_submission, backdate with date (YYYY-MM-DD); no client notification is sent. - Number answers use the metric's canonical unit (kg weight, cm length) from questionnaire_read's 'unit', not the client's display unit. EXAMPLES - {"method":"create","title":"Bilan","type":"assessment"} - {"method":"create_submission","assignment_id":"<id>","answers":[{"question_id":"<qid>","answer":"72"}],"date":"2026-01-15"}
save_questionnaire
Use this when reading agenda. WHEN TO USE - This is the primary agenda read tool, not writer. available_slots = computed bookable instants for a prestation (product_id + start_date) — "when can I book service X?"; time_slots is the static config grid. - response_format="concise" for lists; "detailed" before save_calendar_event. - appointments + id reads one owned booking with mutation snapshots, credit payments/policy and refund receipts; bypasses date/list limits. COMMON MISTAKES - available_slots (bookable) is not time_slots (the grid). - Use bounded date ranges. EXAMPLES - {"method":"available_slots","product_id":"...","start_date":"2026-06-22"}
schedule_read
Find citable Ekklo documents by name or title, then use fetch(id). Matches literal substrings of 2-80 characters, returning up to eight owned clients, v2 training programs, nutrition plans and questionnaires per type. Empty or one-character queries return no matches. This is document search, not semantic search or operation discovery.
search
Use this when sending a message or managing a conversation. WHEN TO USE - This is the primary messaging writer, not read/template. - Send text (optionally a content_ref attachment or reply_to_id), OR set method to pin/unpin/edit/delete/mark_read, OR manage a group (create_group/rename_group/add_participants/remove_participant). - See learn_ekklo('messaging') for content_ref payloads and group flows. COMMON MISTAKES - Use provided customer/conversation text; no drafts. content_ref is a structured reference, never a file upload. EXAMPLES - {"customer":"Marie","content":"Confirmed."} - {"method":"pin","conversation_id":"..."}
send_message
Use this when reading sport/training data. WHEN TO USE - This is the primary sport read tool, not writer. - Use response_format="concise" for display-only program summaries; use "detailed" before save_program. - Before save_program uses exercise_name, call resolve_program_references for exact/ambiguous/missing IDs without confirmation. - Series fields (RPE, RIR, band...): get_program_draft(detailed) shows targets and unit_ids; get_session_report, execution_logs and get_exercise_progress show performed values. - To save a draft workout in the library, discover save_component_template. component_template_preview(program_id,draft_id,session_id,type,name,circuit_ids?) returns COMPLETE content, warnings and review_token; show them before coach agreement. component_templates is the inspection reader. COMMON MISTAKES - Do not mutate here. EXAMPLES - {"method":"resolve_program_references","queries":[{"reference":"squat"}]}
training_read
Ekklo ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Ekklo's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.