Ekkle Assistant

Type it. It's done.

AI that runs your church — not just writes about it. The Assistant uses tools to update your app: events, pages, rosters, notifications, and more. Calm. Clear. Under your control.

Assistant in action

Short demo coming here (volunteer roster → push notification → new event). For now, start a trial and open the Assistant inside your church admin.

Read-only AI vs. Ekkle Assistant

Many tools answer questions or chart your data. Ekkle focuses on actions your team would otherwise click through by hand.

Typical "church AI"

  • Sermon repurposing, captions, or social copy.
  • Natural language → charts or filters (read-only).
  • External chat connected to a database (still mostly read).

Ekkle Assistant

  • Create and update events, home blocks, and site pages.
  • Send push notifications to your congregation (where enabled).
  • Auto-assign volunteer responsibilities with proposals you can lock, swap, and apply.
  • Search sermon transcripts and navigate admins to the right screen.

Volunteer scheduling

Auto-roster with a human in the loop

The Assistant can propose multi-week responsibility rosters that respect eligibility, avoid back-to-back assignments, balance load, and prevent double-booking. Leaders lock cells, swap names, regenerate slices, then apply when ready.

In chat, the Assistant can embed an interactive roster card you can act on in the app.

Preview

[[ekkle:roster-proposal:…]]

Interactive roster proposal rendered in the app — not a wall of text.

Built on tools, not guesses

Capabilities map to real product tools. Super-admins can toggle tools per church. Every change happens in your tenant — the Assistant does not replace human leadership; it removes repetitive clicks.

What the Assistant can do today

Pulled from the shipped ability matrix in the Ekkle repo (docs/capabilities/abilities.yaml) — supported tools only.

130 supported capabilities

About Content

  • Add a new content block to the about page

    manage_about_block

  • Remove a content block from the about page

    manage_about_block

  • List content blocks on the church about page

    list_about_blocks

  • Edit an existing about page content block

    manage_about_block

Analytics

  • Summarize church analytics (DAU/WAU/MAU, feature engagement, sessions, Sunday Spine metrics) for the assistant

    get_church_analytics_summary

  • Sunday Spine effectiveness metrics — time-to-Sunday-ready, inquiry response rate by kind/channel, and proactive sunday_prep ops — for monthly review and get_church_analytics_summary

    get_church_analytics_summary

Appearance

  • Remove the church logo (revert to text wordmark)

    remove_church_logo

  • Set the church logo from a public image URL (server-side fetch + re-host)

    set_church_logo

  • Update header color and SPA tab-icon overrides

    set_church_theme

  • View logo, header color, and nav icon visibility

    get_church_theme

Assistant

  • Admin-only assistant tool wrapping AssistantInquiryService.AskBulletinReadinessAsync with the same AssistantProactivityLevel gate as ask_preacher_for_sunday. Asks the resolved bulletin maker how the bulletin is coming along. Backs the Wednesday sunday_prep recipe and can also be called ad hoc.

    ask_bulletin_status_for_sunday

  • Admin-only assistant tool wrapping AskPreacherAsync with the AssistantProactivityLevel gate: "off" refuses, "suggest only" requires a propose_quick_replies permission round-trip before sending, "act with approval" sends immediately. Backs the Tuesday sunday_prep recipe and can also be called ad hoc if an admin asks Ekkle to nudge the preacher.

    ask_preacher_for_sunday

  • Admin-only assistant tool wrapping AssistantInquiryService.AskSermonPlanAsync with the same AssistantProactivityLevel gate as ask_preacher_for_sunday: "off" refuses, "suggest only" requires a propose_quick_replies permission round-trip before sending, "act with approval" sends immediately. Asks the resolved preacher for their sermon title and passage. Backs the Wednesday sunday_prep recipe and can also be called ad hoc.

    ask_sermon_plan_for_sunday

  • Cancel a scheduled agent task by id so it will not fire again

    manage_agent_task

  • Turn off a built-in automation recipe by cancelling its underlying agent task.

    disable_automation_recipe

  • Turn on a built-in automation recipe for this church (creates / reactivates the underlying agent task).

    enable_automation_recipe

  • Schedule the assistant to react to a domain event (e.g. prayer_request_created, roster_confirmation_declined, event_reminder_owner_review_due) instead of a cron time. Uses schedule_agent_task with schedule_kind='on_event'.

    schedule_agent_task

  • Fetch verified overnight/church activity for the daily admin briefing (prayer 24h, yesterday giving vs same weekday last week, new members 24h, roster gaps next 7 days, background job failures 24h, new visitors 24h + open/overdue follow-up tasks). Also injected server-side when the daily_admin_briefing recipe fires at 7am.

    get_admin_daily_briefing

  • Show who currently receives proactive Ekkle Assistant outreach for this church (church-default + per-recipe overrides).

    get_assistant_routing

  • List scheduled agent tasks for the current admin or the whole church

    list_agent_tasks

  • List every Ekkle Assistant automation recipe known to the system, with whether it's enabled for this church and who currently receives it.

    list_automation_recipes

  • Navigate the admin user to in-app pages (SPA) from chat; registry aligned with AppShell admin nav

    navigate_to_page

  • Pause a scheduled agent task so it stops firing without being cancelled. Resume later with resume_agent_task.

    manage_agent_task

  • Open a brand-new turn in the admin's bot conversation without a preceding user message. Used by event-triggered and proactive cron tasks to deliver briefings and event alerts.

    schedule_agent_task

  • Send a companion push notification when a proactive turn opens, deep-linking the recipient to the bot conversation. Honors NotificationPreferenceCategory.AdminNotifications.

    schedule_agent_task

  • Attach interactive quick-reply buttons (2–4 options) to the assistant's next reply so the user can pick a named action with one tap; the user may still type a free-form reply

    propose_quick_replies

  • Curated recipe — every morning at 7am the assistant DMs the primary admin a 1-screen briefing of overnight prayer requests, giving, new members, roster gaps, background-job failures, and pastoral care (new visitors + open/overdue follow-ups), with one suggested action. Server pre-fetches verified data as briefingContext JSON before the assistant formats the reply.

    enable_automation_recipe

  • Curated recipe — on the 1st of each month at 9am (church timezone) the assistant DMs the primary admin a review of the last 30 days of analytics and 3–5 suggestions for how Ekkle could be more effective; may call report_missing_capability once for the top product gap. Skips churches with MAU below 5. Off by default.

    enable_automation_recipe

  • Curated recipe — when a member submits a prayer request the assistant DMs the primary admin (or ministry-role recipient for private requests) with a classification, suggested responder, and quick-reply actions.

    enable_automation_recipe

  • Curated recipe — when a roster confirmation is declined the assistant DMs the group's leader with 1–3 eligible replacement candidates honoring back-to-back and load-balance rules.

    enable_automation_recipe

  • Curated recipe — after a Sunday broadcast is transcribed, scan the full service transcript for announced upcoming events (bake sale, mission trip, prayer night, etc.). Any candidate not already on the calendar triggers a proactive DM to the primary admin with a draft event the assistant can create on confirmation.

    enable_automation_recipe

  • Curated recipe — every Saturday at 4pm (church timezone) the assistant DMs the primary admin a readiness summary for tomorrow's service: what's confirmed, what's still open (critical roster gaps first), and a one-tap way to nudge again via propose_quick_replies. Server pre-fetches verified data as sundayReadinessContext JSON. Default on for every church; a true no-op until the church also sets AssistantProactivityLevel above "off".

    enable_automation_recipe

  • Curated recipe — every Thursday at 9am (church timezone) the assistant DMs the primary admin about critical roster gaps and any still-pending roster confirmation requests for the upcoming service, and offers (or directly sends, depending on proactivity level) a nudge via send_roster_confirmation_requests_for_cells. Server pre-fetches verified data as sundayRosterNudgeContext JSON, including the current proactivityLevel/allowsDirectAction so the model doesn't need to re-derive it. Default on for every church; a true no-op until the church also sets AssistantProactivityLevel above "off".

    enable_automation_recipe

  • Curated recipe — every Tuesday at 9am (church timezone) the assistant checks get_sunday_status for the upcoming Sunday and, if the preacher isn't confirmed, follows the proactivity-level behavior (silent no-op if "off"; propose-then-confirm if "suggest only"; ask directly if "act with approval") via ask_preacher_for_sunday. Default on for every church; a true no-op until the church also sets AssistantProactivityLevel above "off".

    enable_automation_recipe

  • Curated recipe — every Wednesday at 9am (church timezone) the assistant checks get_sunday_status for the upcoming Sunday. If the preacher isn't confirmed yet it does nothing (Tuesday's job); otherwise if the sermon plan isn't confirmed it asks for it via ask_sermon_plan_for_sunday, else if the bulletin isn't confirmed it asks via ask_bulletin_status_for_sunday — following the same proactivity-level branching as the Tuesday recipe. Default on for every church; a true no-op until the church also sets AssistantProactivityLevel above "off".

    enable_automation_recipe

  • Resume a previously-paused agent task; recomputes next-run from cron + timezone.

    manage_agent_task

  • Schedule the assistant to take an action later (one-time at a specific UTC instant, or recurring via a cron expression in the church's timezone). At fire time the stored instruction is replayed back into the conversation as a synthetic user turn from the original admin and the assistant reacts to it normally

    schedule_agent_task

  • Override the recipient on a specific recipe-spawned agent task so this single automation goes to a different admin than the church default.

    set_automation_recipient

  • Choose (or clear) the church's primary Ekkle Assistant recipient — the single admin who receives every proactive automation by default. Same setting is also exposed at GET/PUT /churches/{id}/primary-assistant-admin.

    set_primary_assistant_admin

  • Snooze a specific setup gap (by its key from get_setup_gaps) for N days (default 14) so the weekly proactive check stops raising it for a while. Does not fix anything — get_setup_gaps still reports a snoozed gap when the admin asks directly.

    dismiss_setup_gap

  • List currently-detected Sunday Spine setup gaps (no bulletin_maker contact, unfilled critical roster slots for the upcoming week, a Sunday-looking group not linked to a service time, unclassified group responsibilities, streaming not configured), each with a human-readable description and a suggested next step. Always answerable on request regardless of the church's proactivity setting — the setting only gates unprompted surfacing (see setup_gap_coach.recipe_weekly_check).

    get_setup_gaps

  • Curated recipe — once a week the assistant DMs the primary admin any active (non-snoozed) setup gaps and their suggested next steps. Skipped entirely when proactivity is Off, or when there are no active gaps. Under ActWithApproval, the assistant may additionally draft a one-tap fix (e.g. propose set_responsibility_contact or set_responsibility_kind) via propose_quick_replies, gated by AssistantProactivityGate.AllowsDirectAction — it never applies a fix without an explicit confirming tap.

    enable_automation_recipe

  • Set or clear a church's default responsibility contact (bulletin_maker, primary_preacher, worship_leader, streaming_operator, other) via the assistant — the conversational fix for the "no bulletin maker" setup gap. Same underlying data as sunday_spine.responsibility_contacts; this row tracks the new assistant-tool path onto it.

    set_responsibility_contact

AssistantChat

  • Answer an Ekkle-initiated question (e.g. "are you preaching this Sunday?") via quick-reply buttons or free text in the member/admin bot conversation; the reply drives the existing Sunday Spine write-back tools and marks the AssistantInquiry answered.

    set_service_preacher

Dashboard

  • Update one allow-listed field (sermonTitle, passageRaw, label, sermonPlanStatus, bulletinStatus, guestBio) on a Sunday Spine service plan occurrence

    set_service_plan_field

  • Set who's preaching for a Sunday Spine service plan occurrence (admin or the resolved preacher)

    set_service_preacher

  • See the readiness status for an upcoming Sunday: preacher, sermon plan, and bulletin (unset/requested/confirmed), plus any unfilled critical roster slots (sound, streaming, greeters, etc.) resolved from the roster, default responsibility contacts, or the church admin.

    get_sunday_status

Events

  • Skip the member reminder for one event occurrence (event stays on calendar)

    cancel_event_occurrence

  • Confirm a pending event reminder so the member push notification is sent

    confirm_event_reminder

  • Create a new church event

    create_event

  • Delete a church event

    delete_event

  • Get details of a specific event

    get_event

  • List upcoming church events

    list_events

  • View attendees / RSVPs for an event

    list_event_attendees

  • List events the member owns, including pending reminder reviews

    list_my_owned_events

  • Remove a member RSVP from an owned event (owner or admin)

    remove_event_attendee

  • Headcount and attendee summary for an owned event

    get_event_rsvp_summary

  • Set or update a member RSVP on an owned event (owner or admin)

    set_event_attendee_rsvp

  • Assign event owners who confirm reminders and manage the event via assistant

    set_event_owners

  • Update or reschedule an existing event (admins or assigned event owners)

    update_event

  • Edit proposed push notification text before confirming an event reminder

    update_event_reminder_preview

Features

  • Choose which ministry role receives notifications for private prayer requests (or default to church app admins)

    set_prayer_private_recipient_role

  • Enable or disable the AI assistant

    toggle_feature

  • Enable or disable service bulletin PDF upload and display

    toggle_feature

  • Enable or disable the events feature

    toggle_feature

  • Enable or disable online giving

    toggle_feature

  • Enable or disable content moderation

    toggle_feature

  • Enable or disable prayer requests

    toggle_feature

  • Enable or disable sermon study guides

    toggle_feature

  • Master switch for the whole Sunday Spine feature area — whether the admin-facing "This Sunday" readiness card is shown at all. Off by default; Ask and Capture and the proactivity level only take effect once this is on.

    toggle_feature

  • Enable or disable thumbnail enhancement (including auto-apply)

    toggle_feature

  • Enable or disable sermon transcription

    toggle_feature

  • View enabled/disabled status of all church features

    get_feature_status

General

  • Update church name, address, or service schedule

    update_church_info

  • Change the church's URL slug

    update_church_slug

  • View church name, address, service schedule, and feature status

    get_church_info

Giving

  • Cancel a recurring gift subscription

    cancel_my_recurring_gift

  • List active recurring gift subscriptions

    list_my_recurring_gifts

  • View personal giving history

    show_my_giving_history

Groups

  • Create, edit, delete groups and manage group membership

    list_groups

  • Auto-assign responsibilities for one or more upcoming events with multi-week planning UX. The planner respects eligibility allow-lists, avoids back-to-back assignments, balances load, and prevents double-booking the same person across responsibilities in a single event. Leaders can lock cells, manually swap, regenerate scoped slices, or apply the whole roster. Group leaders (not just church admins) can drive the full flow through Ekkle for groups they lead.

    manage_roster

  • Maintain a per-responsibility allow-list of which group members are eligible for an assignment (e.g. only pastors can serve Lord's Supper, only musicians can lead worship). When a responsibility has zero eligibility rows the entire group is eligible.

    manage_group_responsibility

  • Classify a group responsibility with a semantic Sunday Spine kind (sound_av, streaming, worship_leader, bulletin_maker, greeter, childcare, hospitality, prayer, primary_preacher, other) and mark it critical for the service to run. A keyword heuristic (no LLM) suggests a kind first.

    set_responsibility_kind

Home Content

  • Add a new content block to the home page

    manage_home_block

  • Remove a content block from the home page

    manage_home_block

  • List content blocks on the church home page

    list_home_blocks

  • Edit an existing home page content block

    manage_home_block

Live Stream

  • Upload a PDF service bulletin for the upcoming Sunday (auto-matched

    get_bulletin_status

  • Set auto-shutoff duration for live streams (next or current)

    set_stream_duration

Members

  • Assign or remove a member from a ministry role

    manage_ministry_role

  • Create, rename, or delete a ministry role for the church

    manage_ministry_role

  • List all church members with app roles, emails, and ministry role assignments

    list_members

  • List church-defined ministry roles (pastor, elder, etc.) and who holds them

    list_ministry_roles

  • Remove a member from the church

    remove_member

  • Send a password-reset email to a church member

    send_password_reset_email

  • Promote a member to Admin or demote to Member

    update_member_role

  • View ministry roles assigned to the signed-in user in the current church

    get_my_ministry_roles

Messaging

  • Send a single test SMS via the church's Telnyx number to verify the SMS setup

    send_test_sms

Notifications

  • Cancel a pending scheduled notification

    cancel_scheduled_notification

  • Schedule a push notification for future delivery

    send_push_notification

  • Send a push notification to all members or specific individuals

    send_push_notification

  • View sent and scheduled church notification history with delivery stats

    list_notifications

Pastoral Care

  • Assign and track pastoral follow-up tasks for visitors and prayer requests

    assign_pastoral_follow_up

  • Track visitor/guest records (CRM-lite) by week and follow-up status

    list_visitors

Prayer

  • View and manage prayer requests

    manage_prayer_request

Sermons

  • Search sermon transcripts by topic, scripture, or theme

    search_sermons

Site Navigation

  • Add a navigation link to the church website

    manage_site_nav

  • List primary and footer navigation items

    list_site_nav

  • Remove a navigation link from the church website

    manage_site_nav

  • Reorder all nav items in a single location (primary or footer)

    manage_site_nav

  • Edit a nav item's label, target href, or location

    manage_site_nav

Site Pages

  • Append (or insert at position) a structured section; image_url is fetched and re-hosted server-side

    manage_page_sections

  • Remove the social-share preview image from a page

    manage_site_page

  • Create a new custom website page

    manage_site_page

  • Delete a website page

    manage_site_page

  • List custom website pages

    list_site_pages

  • List a page's structured content sections in display order with 0-based indices

    manage_page_sections

  • Publish or unpublish a website page

    manage_site_page

  • Remove a single section by current 0-based index

    manage_page_sections

  • Reorder all sections on a page via permutation of current indices

    manage_page_sections

  • Set a page's social-share preview image from a public URL (server-side fetch + re-host)

    manage_site_page

  • Update an existing website page

    manage_site_page

  • Patch a section's editable fields by current 0-based index

    manage_page_sections

Support

  • Escalate a technical issue to the human support team

    escalate_to_human

Website

  • Claim or replace a custom domain for the church website

    manage_custom_domain

  • Re-run DNS verification and certificate issuance after publishing DNS records

    manage_custom_domain

  • Stop serving the website on a custom domain (slug.ekkle.app keeps working)

    manage_custom_domain

  • View custom-domain status, verification token, and required DNS records

    manage_custom_domain

  • Toggle the public Give and Events pages on the church website

    set_website_features

  • View the public-website feature toggles and their underlying feature flags

    get_website_features

Ready to try it?

Apply as an early adopter — we onboard you personally, and the Assistant is available where your church enables it.

Apply as an early adopter