MCP App Store
by KeenEthics

Overview

Every AI powers AI-Native client businesses from ChatGPT. Create and send invoices with automatic tax calculation, build and send proposals, search clients and contacts, track payments, record expenses, and manage your full sales pipeline — see deals by stage, create and advance deals, and log activity. Search your Gmail and draft or send email from your own mailbox, check your calendar and schedule meetings, manage bookings, set up recurring invoices, review prospects, read your daily brief, and pull financial reports. Connect your Every account and use natural language to handle everyday business tasks — no switching between apps.

Tools

approve_pending_deal

ChatGPT
Approve a prospect awaiting review, activate it in Lead, and queue its plan. Use this before move_deal_stage when a deal is still awaiting review — a deal can exist with review_state='pending', listed on the Prospects page (/prospects), before it's an active part of the Deals board. Approval changes review_state to approved, enters the Lead stage, and queues the initial deal replan.

approve_prospect

ChatGPT
Approve a selected pending prospect into a Deal using the canonical promotion path. Returns the surviving Deal identity; repeated approval does not promote twice. Owner/bookkeeper required.

ask_assistant

ChatGPT
Read-only Q&A fallback. Use a specific tool first; reach for this only when no other tool fits. PREFER specific tools whenever the request maps to one: - Listing/filtering: list_invoices, list_people, list_companies, list_proposals, list_payments, list_expenses, list_services, list_deals, list_prospects, get_pipeline_summary - Lookup by id/number/name: view_invoice, view_person, view_company, view_proposal, view_deal, view_prospect - Read-only summaries: network_summary, get_daily_brief, get_scheduled_task_result, get_financial_report - Mutations: create_invoice, create_proposal, create_person, create_company, record_payment, send_invoice, create_deal, move_deal_stage, log_deal_activity, etc. - Capability/help: what_every_does for "what can Every do?", get_home for onboarding/welcome. USE THIS TOOL ONLY for analytical questions that span multiple data points and have no direct tool — e.g. "what's my revenue this quarter?", "which customers have the most overdue invoices?", "summarize my pipeline this month". It is read-only: writes, drafts, sends, deletes, and external MCP actions are refused. For changes, use the specific write tools (create_invoice, record_payment, send_invoice, create_deal, move_deal_stage, log_deal_activity, etc.). Simple questions answer in seconds on a warm conversation; complex analytical questions can take a minute or more, so keep first questions focused. Follow-up questions asked within about 30 minutes reuse the same conversation thread, so you can ask naturally without repeating earlier context.

business_settings

ChatGPT
Get business settings: name, address, default currency, timezone, tax rates with IDs, and subdomain. Do not use this for broad questions like "what can you do?", "what does Every do?", or "what can this app do?". Use what_every_does for those. Use get_home for first-run welcome, onboarding, or getting-started prompts. IMPORTANT: Call this before creating invoices or proposals to get: - Default currency (so you don't need to specify it) - Default tax rate and ID (to apply on line items via sales_tax_applied) - Business timezone

cancel_calendar_event

ChatGPT
Delete one Google Calendar event and optionally notify attendees. For a recurring event instance ID, only that occurrence is deleted; pass the recurring series master ID to cancel the full series. send_updates accepts all, externalOnly, or none.

cancel_scheduled_task

ChatGPT
Cancel a self-directed scheduled task so it no longer runs. Use list_scheduled_tasks to find the task ID. Only self-directed tasks (the kind created here or in-app) can be cancelled this way — built-in Every routines are not affected.

check_calendar_availability

ChatGPT
Return busy blocks from the caller's primary Google Calendar. start and end must be RFC3339 timestamps with timezone offsets.

complete_signup

ChatGPT
Finish the user's Every signup with the profile the user confirmed. Call this once, after get_signup_status, with only the values the user confirmed. Only organization_name is required; description and public_links may be omitted. Saves the profile, starts background setup (business research and Business DNA) and returns account_ready true. Background setup never blocks using Every. Repeating the same call is safe. A different profile after signup is finished is refused with signup_already_completed; change it in the organization settings instead.

convert_proposal_to_invoice

ChatGPT
Convert an issued/approved proposal into a draft invoice for the same Person or Company. Use its UUID and updated_at from view_proposal plus a new operation UUID. Retry identical inputs after an uncertain result. An existing non-void invoice is returned. Source prices must be visible.

create_calendar_event

ChatGPT
Create an event in the caller's Google Calendar. This can immediately invite external attendees. start and end must be RFC3339 timestamps with timezone offsets.

create_company

ChatGPT
Create a real Company with a name and optional email/phone methods or existing People relationships, atomically. A Company needs no Person. Use a new operation_id UUID and reuse it only to retry the exact request. Do not create a Company merely to invoice or propose to a Person.

create_deal

ChatGPT
Create a manual pipeline deal at Lead or Opportunity. Set party to an existing Person or Company. Without party, the supplied name/email resolves or creates a Person. A Company target needs no Person. Optionally choose a content-ready sales_strategy_id from list_sales_strategies; omitting it uses the default sales strategy.

create_delivery_deal

ChatGPT
Start delivery tracking at Won for an existing Person or Company. Use for already-won retainers/projects. The shared claim preserves an existing request for the same party/name; use a distinct name for a new workstream. Optional budgets and prior_deal_id retain delivery/lineage behavior. Outreach is not started. People do not require a Company.

create_expense

ChatGPT
Record an expense or receipt with a new operation UUID, merchant_name, and amount. amount is the final charged total INCLUDING tax/tip; refunds are negative. Use the printed merchant and currency, visible tax only, and a legible YYYY-MM-DD date. Omit unreadable dates or tax instead of inventing them. One expense represents one transaction. Attach a hosted receipt image/PDF using photo_url when available. party may be a Person or Company, or omitted/null. Omitted is_billable uses the business default; vendor_key is derived and category is validated. Possible duplicates or receipt-sanity warnings require confirmation before allow_duplicate=true. Retry identical inputs with the same operation UUID after an uncertain response.

create_invoice

ChatGPT
Create a draft invoice atomically with a new operation UUID and at least one line item. Set command.party to {kind: person|company, id: UUID} from list_people/list_companies; a draft may omit it until the recipient is known. No Company is created for a Person. Use business_settings for currency/tax defaults and list_services for service IDs. Omitted currency uses the business default; issue/due dates default to today/+30 days. New line items must not carry retained IDs. Retry identical inputs with the same operation UUID after an uncertain response; the same invoice is returned.

create_meta_field_definition

ChatGPT
Create a custom field definition (meta field/metafield) to track a typed property on People, Companies, or Deals, including boolean fields and validations. This is a schema decision: check list_meta_field_definitions and reuse an existing definition when one fits; never create per-occurrence or date-stamped fields — events belong on the activity timeline (log_deal_activity), not in the schema.

create_person

ChatGPT
Create a Person with a name and optional multiple methods or Company relationships, atomically. Search first; shared addresses do not automatically merge people. Supply a new operation_id UUID and reuse it only to retry this exact request. Methods identify their primary status. A Person needs no Company.

create_proposal

ChatGPT
Create a proposal atomically with operation_id, title, and party {kind: person|company, id: UUID}. Look up the Person or Company first. Optional line items use description, quantity, unit_price and tax/discount fields; new items must not carry retained IDs. Prefer command.text={summary?, scope?, notes?, terms?, custom?: [{heading, body}]}. template_id selects a saved template; text/header_extras customize it. For custom layouts, content is the full {version:1, sections:[{id,rowLayout,columns:[{id,blocks}]}]} tree, with each block's fields inside props. The header and estimate are prepared automatically. Currency defaults to business_settings. Retry identical inputs with the same operation UUID after an uncertain response; no second proposal is created.

create_recurring_invoice

ChatGPT
Create a schedule for a Person or Company. Default action is draft; sending requires explicit user intent and recipients from preview_recurring_invoice_send. Reuse operation_id after an uncertain response. Items use name, rate and quantity; new items cannot reuse an existing ID.

create_scheduled_task

ChatGPT
Create a self-directed scheduled task (a routine) that runs instruction on a cadence. run_at_local is 24h HH:MM. schedule_type='weekly' requires day_of_week (0=Sunday, 6=Saturday); 'monthly' requires day_of_month; 'once' requires run_date (YYYY-MM-DD) and must resolve to a future time. timezone defaults to the org's timezone if omitted — use an IANA name (e.g. America/Toronto) to override. result_format is an optional short markdown outline of how every result should be laid out (sections in order, table columns) so recurring reports look the same each run; leave it empty for the default (summary paragraph, table of items, Needs review). Results and any notifications from each run always arrive inside the Every app (Daily Brief / notifications) and by email if email=true — never in this chat, so do not tell the user to expect a reply here.

create_service

ChatGPT
Create a service the business offers. pricing_model is 'fixed' or 'hourly' (default fixed). The business's default sales tax is applied automatically.

delete_company

ChatGPT
Permanently delete a Company and its owned profile methods/relationships. Archives Company-only Deals; Person-linked Deals remain active. Financial, provider and protected historical references prevent deletion. Use view_company's version and an operation_id UUID; archive instead when history must retain the Company.

delete_expense

ChatGPT
Permanently delete an expense using its UUID/updated_at from view_expense and a new operation UUID. Billed or otherwise linked dependencies may prevent deletion. Retry identical inputs after an uncertain response.

delete_proposal

ChatGPT
Permanently delete a proposal using its UUID and updated_at from view_proposal. Use a new operation UUID; retry identical inputs after an uncertain response. A proposal number is insufficient for deletion retries. Linked invoices, active work, shared items, or Portal dependencies may prevent deletion.

draft_email

ChatGPT
Create a draft in the caller's Gmail mailbox for human review and sending. When thread_id is provided, creates a threaded reply draft. This tool does not send the email.

duplicate_proposal

ChatGPT
Copy a proposal to a new draft with its title, typed recipient, content and items preserved. Use its UUID and updated_at from view_proposal plus a new operation UUID. Reuse identical inputs after an uncertain result. Source prices must be visible. Dates and acceptance are cleared.

end_affiliation

ChatGPT
End a Person's relationship to a Company. Keeps the Person, methods and history. Invalidates dependent future recipients and dependent Portal permissions; restoring the relationship does not silently regrant access. Requires current Person and relationship versions from view_person.

find_entities_by_meta_field

ChatGPT
Find People, Companies, or Deals by a filterable custom field value (meta field/metafield), including scalar comparisons and list containment. The definition must have filterable enabled. If the definition is not filterable, explain that limitation. Change its definition only after the user explicitly requests that schema change. Use contains with one value for a list-type definition, or contains_any with a list of values; omit value for is_set/is_not_set. Results are entity id + a human-readable label, ready to pass to view_person/view_company/view_deal without a follow-up lookup.

generate_invoice_pdf

ChatGPT
Use this when the user asks for a downloadable or printable PDF of an invoice. Do not use this to get a shareable recipient link — view_invoice's response already includes the invoice's public URL once it has one (issue or send the invoice first). invoice_id accepts a UUID or invoice number (e.g. INV-0007). Returns an error if the invoice has no public ID yet (unissued).

generate_proposal_pdf

ChatGPT
Generate a PDF for a proposal. The rendered PDF is available on the public proposal page.

get_daily_brief

ChatGPT
Read the caller's latest stored daily brief, optionally for a UTC date. This only reads an already-generated artifact and never re-runs the brief.

get_deal_burn

ChatGPT
How a deal is tracking against its budget: hours logged, billable vs unbilled WIP, amount billed, and what's left of the budget. Cost and margin appear only when the caller's role may see cost in this workspace; otherwise they come back as null, which means "not visible to you", never "zero". Answer with the figures you get and don't infer a margin from a null cost.

get_entity_counts

ChatGPT
Exact counts of People, Companies, invoices, expenses, proposals, and active Deals you can access. Archived profiles and documents are excluded. Use this FIRST for "how many X do I have" instead of counting a capped list page.

get_financial_report

ChatGPT
Get recorded revenue, invoice face-value rollups, expenses, net, proposals, and recurring totals. Invoice rollups include unpaid, partial and overdue records at their full invoice values, not their remaining balance due. Use list_workspace_invoices with payment_status=outstanding, then view_invoice for current balances. Currencies stay separate. Use get_pipeline_summary for Deal pipeline reporting.

get_gmail_message

ChatGPT
Get one Gmail message from the caller's mailbox. Returns message text and headers. Attachments are redacted to filename, MIME type, and size metadata; attachment bytes are never returned.

get_gmail_thread

ChatGPT
Get a Gmail thread from the caller's mailbox. Returns message text and headers. Attachments are redacted to filename, MIME type, and size metadata; attachment bytes are never returned. By default returns the 10 most recent messages. Long threads are PAGEABLE: when the response's truncated is true, read note / next_offset and call again with offset until next_offset is null — do not fall back to per-participant searches for a long thread.

get_home

ChatGPT
Show the first-run getting-started overview of Every's features and setup. This is not the user's Every home. To open their home with setup, Priorities and suggested conversations, use open_every_workspace. Use this onboarding overview when the user has just connected Every, asks for help getting started, or asks what to do first. It is read-only: a welcome overview, workspace setup status, and suggested next actions. Prefer this over business_settings for welcome, onboarding, or getting-started questions. For high-level informational questions like "what can Every do?" or "what does Every do?", use what_every_does. Do not use for specific invoice, Person, Company, proposal, expense, or payment requests unless this is the user's first interaction after an MCP workspace was auto-created.

get_meta_fields

ChatGPT
Read the custom field values (meta fields/metafields) recorded on one Person, Company, or deal, including tracked boolean values and other remembered properties.

get_pipeline_settings

ChatGPT
Read the org's pipeline (sales stage) settings: each stage's (lead, opportunity, won, lost) success criteria and whether the agent is allowed to move a deal into it, plus whether Won automation is enabled overall. Read-only — settings are changed in the Every app.

get_pipeline_summary

ChatGPT
Summarize active deal counts, linked value by stage, and pending-review count. Renders an interactive pipeline board grouped by stage where supported.

get_recipient_defaults

ChatGPT
Read invoice/proposal To and CC defaults, addresses explicitly set to none, the effective recipients in force, eligible method IDs and configuration version. An unconfigured record still has effective recipients: every active address receives, one as To. Companies may select their own emails or active associated People's emails; People select their own. This configuration does not grant Portal access.

get_scheduled_task_result

ChatGPT
Read the latest completed result of one of the user's self-directed scheduled tasks. Use list_scheduled_tasks to find the task ID. This only reads a stored result and never runs the task. Each run still delivers its result inside the Every app and by email if enabled; use this to read the most recent one on request.

get_signup_status

ChatGPT
Check whether the user's Every signup is finished, and what is needed to finish it. Call this after the user connects Every for the first time, when the user asks you to sign them up, or when another tool returns signup_incomplete. Returns signup_status "needs_profile" (the organization name must be confirmed) or "ready". For needs_profile it also returns the current profile and suggested values inferred from the user's mailbox and the public web. Suggestions are unverified: show them to the user, then ask once to confirm or change the organization name and, optionally, a description and public links. The result does not change on its own; there is no need to call this again before complete_signup.

get_started

ChatGPT
Use this when a new ChatGPT connector user wants to get started or set up Business DNA. This is for users who may have an auto-created Every org and incomplete Google Workspace permissions. Prefer sending them to the app-led Google permissions and Business DNA path. If Business DNA already exists, this tool returns a review link instead of re-onboarding. If the user does not want to grant Google permissions, ask for a compact business brief and then call save_business_info with the facts they provided.

get_workspace_priorities

ChatGPT
Read your current ranked Priorities with scoped context for an Ask Every conversation. Never refreshes, marks seen, completes items or executes their actions.

get_workspace_setup

ChatGPT
Read current setup readiness and a bounded Business DNA summary without starting scans, minting links or changing settings.

list_calendar_events

ChatGPT
List events visible through the caller's Google account, including owned and shared writer calendars. start and end must be RFC3339 timestamps with timezone offsets. Returns event IDs, titles, times, attendees, Google Meet links and source_calendar attribution. An unknown source role remains unknown. Attendee is_self is Google's event metadata, not the authenticated Every user identity.

list_companies

ChatGPT
Search Companies. A Company can exist without People. Results include typed keys, avatars and profile versions; private fields obey your billing role. Page through has_more before treating results as complete.

list_deals

ChatGPT
List pipeline deals. Defaults to live, non-archived deals: approved deals assigned to a pipeline stage. Set review_state to pending, dismissed, approved, or all to inspect other review states. Use search for target name or company text. Pass include_archived=True to also see archived (closed-out) deals — omitted by default since an archived deal is something the user explicitly removed from their board. Responses include record ids; response_format='concise' returns trimmed rows (ids kept), 'detailed' adds links and secondary fields. Renders an interactive pipeline board grouped by stage where supported. Approved Deal rows include their sales strategy and its target.

list_expenses

ChatGPT
List expenses with optional filters for merchant, category, Person or Company, billable status, currency, and vendor key. Returns amount, merchant, category, billable/billed fields, tax, vendor key, and date. Responses include record ids; response_format='concise' returns trimmed rows (ids kept), 'detailed' adds links and secondary fields.

list_invoices

ChatGPT
List and search invoices with optional filters for status, payment state, Person or Company, and more. Supports filtering by invoice status (draft/issued/void), payment status, Person or Company, and archive state. Returns invoice number, Person or Company name, total, balance due, status, and due date. Payment states: paid is settled; unpaid, overdue, and partial are all subsets of money still owed. Use payment_status="outstanding" to match ALL still-owed invoices at once (unpaid + overdue + partial) — this is the usual intent of "outstanding"/"owed"/"unpaid". Use payment_status="overdue" (with order_by="due_date") only for the narrower "what's past due?". Responses include record ids; response_format='concise' returns trimmed rows (ids kept), 'detailed' adds links and secondary fields. A returned page is capped at limit and is NOT necessarily the full matching set — the header reads "Showing N of M" and calls out when more results exist. Pass count_only=true for an EXACT total with no rows fetched (the right tool for "how many invoices …?"); prefer get_entity_counts for a simple org-wide invoice count instead.

list_meta_field_definitions

ChatGPT
List the custom field definitions (meta fields/metafields) this organization uses for People, Companies, or Deals. Use to discover the schema before you track, record, or remember a property such as a boolean. Note tags on Companies are a custom.tags list field, not a separate feature. Omit entity_type to list all three.

list_payments

ChatGPT
List payments with optional filters for invoice, Person or Company, and payment type. Supports filtering by payment type (stripe/cash/cheque/credit_card/bank_transfer/other). Returns amount, date, method, and linked invoice. Responses include record ids; response_format='concise' returns trimmed rows (ids kept), 'detailed' adds links and secondary fields.

list_people

ChatGPT
Search People by name, email, phone or employer. Results include typed keys, avatars and profile versions. A Person may have multiple Companies or none. Page through has_more before treating results as complete.

list_proposal_templates

ChatGPT
List proposal templates (global seeds + org-owned). Pass template_id from here to create_proposal. scope filters to 'global' (platform seeds), 'org' (org-owned), or 'all' (default). query does a case-insensitive name/description substring match.

list_proposals

ChatGPT
List and search proposals with optional filters for status, Person or Company, and invoice. Supports filtering by status (draft/issued/approved/void). Returns proposal number, Person or Company name, total, status, and public URL. Responses include record ids; response_format='concise' returns trimmed rows (ids kept), 'detailed' adds links and secondary fields.

list_prospects

ChatGPT
List prospecting deals with a typed party, stage, score, and review state. Use the returned cursor to fetch the next page. This includes the Prospects column's warm leads awaiting review and approved prospects, unless status filters the review state.

list_recurring_invoices

ChatGPT
List readable schedules with typed People/Company targets and masked item rates. Choose at most one target filter. Page through has_more; count is the total matching schedules. Use view_recurring_invoice for a fresh edit revision.

list_sales_strategies

ChatGPT
List the default sales strategy and strategies from active targets. Include archived strategy IDs explicitly to retain an existing Deal's selection. Results include revision, readiness, example intro, and target.

list_scheduled_tasks

ChatGPT
List the user's self-directed scheduled tasks (routines) — a saved instruction that runs on a cadence (once, daily, weekly, or monthly). Optionally filter by status. Results and any notifications from a run always arrive inside the Every app (Daily Brief / notifications) and by email if enabled — never in this chat.

list_services

ChatGPT
List services offered by the business. Search by name for fuzzy matching (e.g. 'design' finds 'Design Services'). Returns service name, rate, duration, location type, and service ID. Use service IDs when creating invoices or proposals with service-linked line items. Responses include record ids; response_format='concise' returns trimmed rows (ids kept), 'detailed' adds links and secondary fields.

list_workspace_deals

ChatGPT
For Home's deals-needing-work review, pass focus=needs_work to show up to five open deals from current caller Priorities with reasons. This shortlist is not the whole pipeline. Default overview reads all supported deal lanes with bounded cards and exact visible counts. To continue one lane pass its stage and next_offset. Financial values remain permission-masked.

list_workspace_invoices

ChatGPT
Read a structured member-scoped invoice page. Outstanding includes unpaid, overdue and partial. Unknown/restricted amounts remain null; totals never combine currencies.

list_workspace_targets

ChatGPT
Read active caller-visible prospecting targets without scanning or creating suggestions.

log_deal_activity

ChatGPT
Use this when the user shares a screenshot or description of an off-platform exchange (DM, text, call, in-person) with a prospect or customer to log against a Deal. Transcribe who said what, when, channel, and any commitments into note. Resolve deal_id via list_deals by Person/Company name if unknown; call create_deal first for a new, unseen prospect. The deal plan updates asynchronously after this call. Do not double-log invoices or proposals — Every tracks those automatically. If the deal is one our prospecting search scored below its bar and left off the user's board, this call opens it and logs against it. That state is our scoring residue, never the user's decision — so never describe a deal to them as "triaged", "not active", or hidden, and never ask whether to reopen one. Just say you added the Person to Deals.

merge_prospect

ChatGPT
Merge a selected prospect into the explicitly selected existing Deal into_deal_id after checking both identities. Revalidates the match server-side and returns the surviving Deal. Owner/bookkeeper required.

move_deal_stage

ChatGPT
Move a deal to Lead, Opportunity, Won, or Lost. This is an operator/manual move and allows corrections such as moving out of Won/Lost. Moving to Won requires the Deal to already be linked to a Person or Company; a Deal with neither cannot move to Won yet.

network_summary

ChatGPT
Summarize the Prospecting People pool using the existing five-minute cache. Pass a prospecting target id to use that target's exclusion scope. This never forces a fresh count of the People pool, and never starts a Prospecting search.

open_every_workspace

ChatGPT
Open the user's Every home: setup, Priorities and suggested conversations. List views are home|people|invoices; people includes People and Companies. Prospects and Deals have no list view: use list_workspace_prospects or list_workspace_deals in chat, then open one record with entity_type prospect or deal and its entity_id. Pass entity_type and the entity_id from a list or search read to open a specific Person, Company, Deal, Prospect or Invoice; an existing card needs no additional panel.

pause_recurring_invoice

ChatGPT
Pause a schedule using its current revision. Preserve its items, target, delivery defaults and execution history. Reuse operation_id for an identical retry.

preview_document_send

ChatGPT
Return the current To and CC recipients and recipient digest for an invoice or proposal. Sends nothing and grants no Portal access.

preview_recurring_invoice_send

ChatGPT
Preview exact To/CC for a Person or Company before enabling or resuming automatic invoice delivery. Works before a schedule exists. Show these addresses and copy the returned recipients unchanged into the later command. This sends nothing.

record_payment

ChatGPT
Record a positive payment against the invoice UUID and updated_at from view_invoice. Supply a new operation UUID. Recording the payment and updating invoice status are atomic; retry identical inputs with that UUID after an uncertain response. Common payment types are cash, cheque, credit_card, bank_transfer, or other. This records an existing payment; it does not charge a card or send a notification.

reject_prospect

ChatGPT
Reject this prospect and suppress the Person across workspace targets, not just this row. Requires explicit approval and owner/bookkeeper authority. Explain the workspace-wide consequence before requesting approval.

reschedule_calendar_event

ChatGPT
Reschedule one Google Calendar event and optionally notify attendees. For a recurring event instance ID, only that occurrence is patched; pass the recurring series master ID to change the series. send_updates accepts all, externalOnly, or none.

resume_recurring_invoice

ChatGPT
Resume a schedule and recompute its next run. A schedule that sends automatically requires fresh previewed recipients. This does not generate an invoice immediately.

run_recurring_invoice_now

ChatGPT
Generate the next invoice now only when explicitly requested. If configured to send, this also emails the invoice and requires exact previewed recipients. The existing execution ledger prevents duplicate runs for the same scheduled occurrence.

save_business_info

ChatGPT
Save basic business information gathered during onboarding. Call this after the user answers get_started's business DNA questions. Saves a concise written business DNA to business_context.identity_summary (the structured Phase-2 surface, replacing the legacy orgs.org_prompt blob) and a structured onboarding profile to orgs.onboarding_profile. Use replace_existing=false by default so existing Business DNA is preserved. Set replace_existing=true only when the user explicitly asks to replace the current DNA.

save_proposal_as_template

ChatGPT
Snapshot a proposal's block content into a reusable org-owned template.

search_gmail_threads

ChatGPT
Search the caller's Gmail mailbox and list matching conversation threads. Returns each thread's id, subject, sender, recipients, date, and snippet. Use Gmail search syntax in query and optionally filter by a label.

send_email

ChatGPT
Send an email immediately from the caller's Gmail mailbox to an external recipient. This sends a real email as soon as the tool is called. When thread_id is provided, sends it as a reply in that Gmail conversation.

send_invoice

ChatGPT
Email an invoice to the To and CC recipients returned by preview_document_send for the same invoice, and set its status to 'issued'. This sends a real email to the client, so it is for an explicit request to send this invoice, not a step after creating one. The recipient digest and exact To/CC must match the current preview. Changed or stale recipient sets are rejected and require a new preview.

send_proposal

ChatGPT
Email a proposal to the To and CC recipients returned by preview_document_send for the same proposal, including a resend of an issued proposal. This sends a real email to the client, so it is for an explicit request to send this proposal, not a step after creating one. The recipient digest and exact To/CC must match the current preview. Changed or stale recipient sets are rejected and require a new preview. message adds an optional note above the proposal content in the email.

set_deal_name

ChatGPT
Set or clear WHAT a Deal is called (the name of the work, e.g. "Q3 Brand Refresh"), not WHO it is with. It writes only the Deal's name; the Person or Company the Deal is filed under does not change. Pass an empty string (or omit name) to CLEAR it back to the default name the system generated for this Deal. Works on a Deal at any review stage, including a prospect awaiting review.

set_deal_sales_strategy

ChatGPT
Switch one visible Deal to a content-ready sales strategy, or null for the default. Use assignment_rev from view_deal and a new operation_id UUID. Reuse the operation ID and identical arguments after an uncertain response. A changed assignment requests one fresh Deal plan; an unchanged assignment is a no-op.

set_deal_value_estimate

ChatGPT
Set or clear a manual value estimate on one Deal. Call it a value estimate when you speak to the user, never a target value: a prospecting target is a different concept. The argument keeps its stored name, target_value. Use this for a Deal with no proposal or invoice yet when the user wants to record an expected amount (e.g. "put them down for $5k"). Pass target_value=None (or 0) to clear it. Once a proposal or invoice is linked to the Deal, its total becomes the value source and this call is refused until that link is removed; tell the user that instead of retrying.

set_meta_fields

ChatGPT
Set or remember custom field values (meta fields/metafields) on a Person, Company, or deal. Use when asked to track a property such as a boolean; missing definitions are created automatically. This stores CURRENT STATE, not an event log — for something that happened (a call, visit, meeting, touchpoint) use log_deal_activity instead, and update a state field here only when one already exists for it. Each key in values succeeds or fails independently — check the errors list in the response.

set_recipient_defaults

ChatGPT
Set explicit To/CC email-method IDs, and none_method_ids for addresses that must not receive, using the current configuration version from get_recipient_defaults. A method with no entry keeps the default: it receives. Does not send anything or grant Portal access.

setup_business_context

ChatGPT
Deprecated alias of get_started.

update_company

ChatGPT
Edit or archive a Company atomically using expected_version from view_company and an operation_id UUID. Methods/relationships are individual commands with versions. This does not grant Portal access or silently change sending defaults.

update_expense

ChatGPT
Update only supplied expense fields, using its UUID/updated_at from view_expense and a new operation UUID. Omit unchanged fields; explicit null clears nullable values. party is a Person or Company; clear/reassign an incompatible deal_id when retargeting. Retry identical inputs after an uncertain response.

update_invoice

ChatGPT
Update an invoice atomically using its updated_at from view_invoice and a new operation UUID. Omit unchanged fields in changes; explicit null clears nullable fields. Replacing line_items replaces the entire list: include existing item IDs to retain their identity and source references. Omitted tax/discount fields on retained items stay unchanged. Set party to {kind: person|company, id: UUID}; when changing the recipient, explicitly clear or reassign an incompatible deal_id. Retry the same operation UUID with identical inputs after an uncertain result.

update_meta_field_definition

ChatGPT
Update settings on a custom field definition (meta field/metafield). updates accepts only: name, description, display_order, filterable, validations. Use this to enable filtering (set filterable=true). Agent access (agent_readable, agent_writable) and lifecycle (status) can only be changed in the Every app. Shape fields (type, is_list, key, namespace, entity_type) are immutable — create a new definition instead.

update_person

ChatGPT
Edit or archive a Person atomically using expected_version from view_person and an operation_id UUID. Methods and affiliations are individual commands, never replacement lists. Existing method/affiliation edits require their versions. Ending a relationship uses end_affiliation; recipient defaults are separate.

update_proposal

ChatGPT
Update a proposal atomically using the UUID and updated_at from view_proposal, plus a new operation UUID. Omit unchanged fields. Prefer changes.text={scope: ...} for a text-field edit; content replaces the full block tree. line_items replaces the entire list; retain item IDs to preserve identity and omitted source/tax/discount fields. party is {kind: person|company, id: UUID}; explicitly clear or reassign an incompatible deal_id when changing it. Nullable dates/party may be cleared; use [] to empty line_items or attachments. Retry identical inputs with the same operation UUID after an uncertain response.

update_recurring_invoice

ChatGPT
Apply sparse schedule changes against its current revision. Missing fields remain unchanged; line_items replaces the complete ordered list, retaining existing IDs where supplied. Schedule date changes recompute the next run. Enabling sending or changing its target requires exact previewed recipients. Reuse operation_id only for the same request.

update_sales_strategy

ChatGPT
Edit a shared sales strategy for all its Deals. The strategy is the bullet instructions the deal agent follows. The example email is generated from it and cannot be edited; an edit regenerates it. Use the current revision from list_sales_strategies or view_deal. Only [First name] is permitted as a bracketed placeholder. Complete first generation is required. Conflicts return current content for review.

update_service

ChatGPT
Update a service. Pass the service ID (or exact name) and only the fields to change. pricing_model is 'fixed' or 'hourly'.

view_company

ChatGPT
Read one Company, its methods, associated People, avatar and current versions. Your role controls private fields. Search list_companies first if the ID is unknown.

view_deal

ChatGPT
View a single deal with stage, Person or Company, sales strategy and its target, plan snapshot, and recent activity.

view_entity_timeline

ChatGPT
Read a Person, Company, or Deal's activity timeline — emails, logged interactions, stage changes, and agent actions, newest first. scope='rollup' widens the view to related activity: on a deal it also includes activity from its linked Person or Company; on a Person or Company it also includes activity from Deals linked to them. limit defaults to 20 and is capped at 50. Continue with both before/before_id from next_cursor when complete is false.

view_expense

ChatGPT
Read an expense's current details, typed Person or Company target, and updated_at revision before editing. Private billing fields remain restricted by your role.

view_invoice

ChatGPT
View a specific invoice with full details including line items, payments, and totals. identifier accepts an invoice number (e.g., INV-001) or a UUID — the tool resolves either form. Returns complete invoice data including Person or Company info, line items, payment history, and status. Renders an interactive invoice card where supported.

view_person

ChatGPT
Read one Person, their email/phone methods, Companies, avatar and current versions. Use these versions for edits. Search list_people first if the ID is unknown.

view_proposal

ChatGPT
View a specific proposal with full details. identifier accepts a proposal number (e.g., PROP-0014) or a UUID — the tool resolves either form.

view_prospect

ChatGPT
View one prospect — a warm lead from the user's network — with its fit and relationship scores, plus why it scored that way.

view_recurring_invoice

ChatGPT
Read one schedule, typed target, current updated_at and retained item IDs. Hidden rates stay null; do not copy null prices into edits. Missing update fields preserve their existing values.

void_invoice

ChatGPT
Void an invoice using its UUID and current updated_at from view_invoice: its status becomes void and it can no longer be paid. The invoice and its history remain. Requires an operation UUID; retry identical inputs after an uncertain response.

void_proposal

ChatGPT
Retire a proposal while preserving its record. Use its UUID and updated_at from view_proposal, plus a new operation UUID. Retry identical inputs after an uncertain result. Current write authority is required. Use delete_proposal for permanent deletion.

what_every_does

ChatGPT
Use this for high-level capability questions about Every. Call this when the user asks "what can Every do?", "what does Every do?", "what can this app do?", "what is Every?", "how can Every help me?", or asks for a general overview before choosing a specific task. Returns a compact overview with a one-line value prop, example prompts to try, and a sample invoice. After calling this, reply with at most one or two short sentences; if an interactive card is rendered it already covers Every's features — otherwise summarize the key points from the overview. Signup is a separate flow: when the user has just connected or needs to finish signup, use get_signup_status, then complete_signup after confirmation.

Capabilities

InteractiveWrites

Example Prompts

Click any prompt to copy it.

Similar Apps