get_accounting_accounts
ChatGPTGet the accounting (general ledger) accounts - the bank and credit registers money sits in, e.g. "Checking", "Savings", "Credit Card". Account types are asset and liability only; income/expense classification lives on CATEGORIES, not accounts, so use get_accounting_categories for "what did we spend it on" questions. Pass include_balance=true to get each account's current running balance. Sorted by display order then name.Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_accounting_categories
ChatGPTGet the accounting categories - the income and expense classifications transactions are booked against, e.g. "Utilities", "Salaries", "General Offerings". This is the chart of accounts for revenue and spending. Returned as a FLAT list with parent_category_id; the hierarchy is at most two levels deep, so reassemble it yourself if you need the tree. Use a category id as the category_ids filter of get_accounting_transactions to see everything booked to it.Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_accounting_funds
ChatGPTGet the accounting funds - the restricted/designated buckets money is tracked against, e.g. "General Fund", "Building Fund", "Missions". A fund answers "whose money is this", a category answers "what was it for", and an account answers "where does it physically sit". These are the general-ledger funds, which are NOT the same as the giving funds returned by the contributions tools. Pass include_balance=true for each fund's net balance across all accounts.Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_accounting_payees
ChatGPTGet the accounting payees - the vendors and people the church pays, e.g. "City Power & Light". Use a payee id as the payee_id filter of get_accounting_transactions to see everything paid to them. Tax identification numbers are never exposed through this API.Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_accounting_transaction_by_id
ChatGPTGet a single ledger transaction by its ID, including its split lines with their categories and funds. Voided and opening-balance rows are returned by this tool regardless of the list filters.Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_accounting_transactions
ChatGPTGet ledger transactions (income and expenses) with their split lines, newest first. This is the tool for "what did we spend on X", "how much came in during Y" and register-listing questions. AMOUNTS ARE ALWAYS POSITIVE - the direction is in type, so to total a mixed set you must apply (type == "income" ? +amount : -amount) per row. Filters combine with AND; omit a filter to leave it unapplied. Resolve ids first: get_accounting_categories for category_ids, get_accounting_funds for fund_ids, get_accounting_payees for payee_id, get_accounting_accounts for account_id. For period activity (spending or income over a date range) pass from/to AND include_beginning_balances=false, since opening-balance rows are not activity. This one tool also serves as the category, fund and payee ledger drill-down.Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_additional_fields
ChatGPTGet all person additional fields definitions. Scope: main church only — reads the church linked to the API key and cannot be narrowed to one ministry. Never present its numbers as a ministry figure.
get_all_families
ChatGPTGet all families with optional search and paging Scope: main church only — reads the church linked to the API key and cannot be narrowed to one ministry. Never present its numbers as a ministry figure.
get_campaign_pledges
ChatGPTGet all pledges for a specific campaign with pagination Scope: main church only — reads the church linked to the API key and cannot be narrowed to one ministry. Never present its numbers as a ministry figure.
get_campaigns
ChatGPTGet all campaigns from the ChMeetings API with pagination Scope: main church only — reads the church linked to the API key and cannot be narrowed to one ministry. Never present its numbers as a ministry figure.
get_churches_and_ministries
ChatGPTGet the churches and ministries the API key can reach — the diocese, its churches, and the ministries inside them — with pagination and optional name search. On a church account this returns the church and its ministries; on a diocese account it also returns the sibling churches. Ordered by hierarchy, then by name, so the FIRST row is the main church — the only row with no parent inside the list, and the one every tool reads when church_or_ministry_id is omitted. Read it from here when you need to tell the user which church an unscoped answer came from. THIS IS THE ONLY SOURCE of the church_or_ministry_id accepted by scope-capable tools: the id is an opaque encrypted string that cannot be guessed or built from a name. When the user names a church or ministry ("the Youth ministry"), call this, match the name, then pass the matched id as church_or_ministry_id. If two of them share a name, tell them apart by parent_id or ask the user which one they mean — never pick one silently. Do not call this when the user means the main church: omitting church_or_ministry_id already targets it. Never write "organization" or "organisation" to the user: call each one a church or a ministry, or use its own name.
get_cities_by_state_id
ChatGPTGet the cities of one state as { id, name }, optionally narrowed by search. Resolve state_id with get_states_by_country_id first. A city is narrower than a state: filtering people by city_id answers "who lives in this town", by state_id "who lives in this region". Ids come only from this chain - get_countries, then get_states_by_country_id, then get_cities_by_state_id - and feed the country_id, state_id and city_id filters of get_people. A name is never accepted where an id is asked for, and an id can never be guessed.
get_contribution_batches
ChatGPTGet all contribution batches from the ChMeetings API with pagination Scope: main church only — reads the church linked to the API key and cannot be narrowed to one ministry. Never present its numbers as a ministry figure.
get_contributions
ChatGPTGet all contributions from the ChMeetings API with pagination and optional filtering by person_id, start_date, end_date, reference_id and batch_id Scope: main church only — reads the church linked to the API key and cannot be narrowed to one ministry. Never present its numbers as a ministry figure.
get_countries
ChatGPTGet the countries reference list as { id, name }, optionally narrowed by search. This is the first step before filtering people by where they live. Ids come only from this chain - get_countries, then get_states_by_country_id, then get_cities_by_state_id - and feed the country_id, state_id and city_id filters of get_people. A name is never accepted where an id is asked for, and an id can never be guessed.
get_event_statistics
ChatGPTGet event attendance statistics across a date range. Returns a per-occurrence attendance summary plus a period rollup for every materialized occurrence of the event with Day within [from, to]. Pass include=groups to add a per-group breakdown inside each occurrence. Pass the same church_or_ministry_id the event was listed under — an event id from one church or ministry is not found in another. Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_events
ChatGPTGet events within a date range with pagination. Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_family_by_id
ChatGPTGet a specific family by ID Scope: main church only — reads the church linked to the API key and cannot be narrowed to one ministry. Never present its numbers as a ministry figure.
get_follow_up_actions
ChatGPTGet the follow-up action categories (e.g. "First Visit") available to the church, unpaged and sorted by name. Use an action's id as the action_id filter of get_follow_ups. Each church and ministry has its own set of actions, so read them under the same church_or_ministry_id you will filter with. Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_follow_up_by_id
ChatGPTGet a single follow-up (pastoral follow-up task) by its ID, including its assignees, status, type, notes and completion details. Pass the same church_or_ministry_id the follow-up was listed under — an id from one church or ministry is not found in another. Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_follow_ups
ChatGPTGet follow-ups (pastoral follow-up tasks) with pagination and optional filters. A follow-up is a task to follow up with a specific person, optionally assigned to responsible people ("assignees") and categorized by a follow-up action. Filters combine with AND; omit a filter to leave it unapplied. To find follow-ups for a specific person, first resolve the person with get_people, then pass person_id. For overdue follow-ups use status=pending with to=<today>. Results are sorted by scheduled date descending. Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_groups
ChatGPTGet all groups from the ChMeetings API, optionally narrowed by name with search_text. Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_member_notes
ChatGPTRetrieve all public notes for a specific person with paging Scope: main church only — reads the church linked to the API key and cannot be narrowed to one ministry. Never present its numbers as a ministry figure.
get_no_envelope_members
ChatGPTGet all members who do not have an envelope number assigned. Scope: main church only — reads the church linked to the API key and cannot be narrowed to one ministry. Never present its numbers as a ministry figure.
get_occurrence_attendance
ChatGPTGet the paginated attendance list for an occurrence. The occurrence_id may be a materialized (numeric) or virtual occurrence ID. Narrow the list by attendance status, by a single group with group_id, or to attendees in no group at all with ungrouped=true — group_id and ungrouped are mutually exclusive. Pass the same church_or_ministry_id the occurrence belongs to. Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_people
ChatGPTGet people from the ChMeetings API with paging and filters. Filters combine with AND; omit one to leave it unapplied. Filter server-side rather than paging through everyone and sifting: every page carries whole profiles. For a count, apply the filters and read totalResults - that is the match across all pages, while the rows returned are one page of it. Resolve ids first: get_groups for group_ids, and get_countries / get_states_by_country_id / get_cities_by_state_id for country_id, state_id and city_id. Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_people_in_groups
ChatGPTGet the people who belong to one or more groups, with the group each membership is in. Resolve the group ids with get_groups under the same scope first. group_ids is required and there is no all-groups mode: omitting it returns an "Invalid Group Ids" error rather than everyone. Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_person_by_id
ChatGPTGet a person by their ID. Scope: main church only — reads the church linked to the API key and cannot be narrowed to one ministry. Never present its numbers as a ministry figure.
get_person_churches_and_ministries
ChatGPTGet every church and ministry one person belongs to, with pagination. Main-church entries come first. Resolve the person with get_people first to get their person_id. Use this to answer "which ministries is X in?", and to pick the church_or_ministry_id for a scoped call about that person — it is narrower than get_churches_and_ministries when the question is already about one person. Never write "organization" or "organisation" to the user: call each one a church or a ministry, or use its own name.
get_post_categories
ChatGPTGet the post categories - the topics posts are filed under, e.g. "Announcements", "Events". Use this to turn the category_ids on a post into names. Each church and ministry has its own categories, so read them under the same church_or_ministry_id you read the posts under. Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_post_likes
ChatGPTGet the likes on a specific post, with the person behind each one. Find the post id with get_posts first. A post with allow_likes=false returns no likes. Pass the same church_or_ministry_id the post was listed under — a post id from one church or ministry is not found in another. Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_posts
ChatGPTGet the church posts (announcements and news published to the app feed), newest first. Filter by status (draft/published) and by a published_on date range. Each post carries likes_count and comments_count; use get_post_comments and get_post_likes to see who commented or liked. Categories come back as ids only - resolve their names with get_post_categories. Scope: omit church_or_ministry_id to read the main church linked to the API key, or pass an id from get_churches_and_ministries to read one church or ministry. The response echoes the scope it read as scope — report figures against that, not against the church the user assumed.
get_states_by_country_id
ChatGPTGet the states (provinces, governorates) of one country as { id, name }, optionally narrowed by search. Resolve country_id with get_countries first. Ids come only from this chain - get_countries, then get_states_by_country_id, then get_cities_by_state_id - and feed the country_id, state_id and city_id filters of get_people. A name is never accepted where an id is asked for, and an id can never be guessed.