61 AI features. Each one honestly classified.
Most software slaps “AI” on everything. Pact publishes a code-reviewed audit of every AI feature — which ones genuinely call Claude, and which fall back to rules — so you always know what you're getting.
Powered by Claude
RealThese always call a live model. If you haven't connected an AI key they error rather than quietly faking a result.
Vision call reads a photographed card into a contact; raises ai_not_configured with no key.
Extracts entities, sentiment and tags from a free-text note via AIClient.
Answers how-do-I questions with cited docs; no heuristic fallback.
Maps the buying group and tailors messaging per persona.
Claude enrichment provider (vendor stack, exec roster); per-field calls feature='enrichment_<field>'.
LLM step handler executes prompt steps in an agent workflow.
Generates N subject-line variants for an A/B test via AIClient.
Mode 'improve' of the composer; feature='social_composer_improve'.
Mode 'shorter' of the composer; feature='social_composer_shorter'.
Mode 'punchier' of the composer; feature='social_composer_punchier'.
Mode 'hashtags' of the composer; feature='social_composer_hashtags'.
Mode 'first_line' of the composer; feature='social_composer_first_line'.
Extracts pains, next steps and proposals from a call transcript.
Compiles a plain-English description into a journey trigger; has a regex fallback only for malformed AI output, not for missing config.
Translates UI microcopy from American-English source into the requested target locale (es/fr/de/pt/ja/ko/zh).
Single-shot tool-use call that maps an NL prompt ('show me deals closing this month by owner') to a widget config — widget_kind + source_type + metric_key + …
One-sentence executive insight under every widget ('Pipeline grew 23% MoM driven by 3 large enterprise deals').
Single-shot Claude call over a recorded meeting transcript; extracts summary, action items, decisions, topic chips and per-speaker sentiment.
Single-shot Claude call over a completed call's transcript; extracts a short summary, next-step recommendation, and disposition signal.
Single-shot Claude call over the plain text extracted client-side from a collaborative whiteboard (sticky notes, voting cards, journey blocks, persona cards).
Drafts a one-paragraph executive summary for a proposal from deal + account context; errors (no heuristic) when AI is unconfigured.
Predicts the objections a buyer is likely to raise and drafts pre-emptive language; errors (no heuristic) when AI is unconfigured.
The 'What's happening' card on every deal, account, and contact detail page.
The KPI-delta tooltip — tap a +/-% on any dashboard, revenue, or health tile and a code-defined agent (core.agents.metric_explainer) explains the move ground…
Code-defined agent (core.agents.deal_coach) that reads one open deal — account, recent activities, account timeline, sequence engagement, and risk score — an…
Code-defined agent (core.agents.cs_save) for at-risk accounts: reads the latest health snapshot, churn prediction, recent NPS, open save tasks, and the playb…
Code-defined agent (core.agents.case_expansion) that reads a support case + its account context (recent cases, open deals) and makes one structured Claude ca…
Code-defined agent (core.agents.inbox_triage) that classifies open inbox items across channels (social engagements/mentions, WhatsApp, Messenger) into lead/c…
Code-defined agent (core.agents.sequence_personalizer) that adapts the next sequence step before it sends — reads the enrollment, the step template, and the …
Code-defined agent (core.agents.campaign_builder) that drafts or optimizes a marketing campaign on demand from the 'AI suggest' / 'Optimize' button on a camp…
The prep card for an upcoming meeting, on the home page and calendar hub.
After a meeting ends, drafts a follow-up email + recap note + next steps for the user to review and send (core.agents.meeting_followup).
Proposes the three best replacement slots for a meeting (core.agents.reschedule).
Answers natural-language questions about the caller's calendar — 'when's my next call with Acme?' — grounded in their next two weeks of meetings (both source…
Universal inline augmenter behind Cmd+/ AND a floating ✨ affordance in every textarea/rich-text editor: continue; improve (clearer/concise/warmer/professiona…
Hands-free CRM: the Web Speech API transcribes a spoken sentence client-side and this single tool-use call parses it into an ordered list of structured comma…
`/pact ai <question>` in Slack: a fast (Haiku) call grounded in the tenant's open pipeline answers a free-text question in 2-3 sentences, inline in the channel.
Structures a transcribed voice note (recorded on a deal/account/contact) into summary + decisions + next-steps + action-items + sentiment via a single tool-u…
Turns plain English into up to 5 candidate segment/report interpretations via one tool-use Claude call (fans out to feature='nl_builder_candidates'); the com…
Claude, with a safety net
HybridThese use Claude when configured and fall back to deterministic rules when it isn't — and the UI always tells you which one you're looking at.
LLM suggestion with _fallback_rule_suggestion() when AINotConfiguredError.
Suggests an index for a slow query; falls back to a rule-based suggestion.
Summarizes NPS / survey free-text; degrades to an extractive 'template' summary, surfaced honestly ('enable AI-written summaries').
Summarizes a feedback queue into themes (core.comms.summarizer); heuristic fallback when unconfigured.
Plain-English churn-risk explanation; falls back to the scored signal list.
Surfaces themes from closed deals (core.win_loss.theme_extractor); degrades to keyword aggregation when unconfigured.
RAG over KB articles; falls back to top-k retrieval snippets without synthesis.
Labels inbound-comment sentiment; _heuristic_sentiment() fallback.
Best day/hour to email; the model is an honest cold-start fallback — it runs only when both recipient and tenant-default engagement histograms have too few e…
Rewrites a subject line per recipient; returns the original subject on AI failure.
Rewrites a single sequence step's subject + body for a specific recipient at design time.
Classifies buying-committee roles with one Claude call per member when the tenant has an AI key (core.buyer_group.role_classifier); title-keyword heuristic f…
Maps a plain-English enrichment request to canonical fields; rule-based fallback.
Drafts quote line items / summary; falls back to a template when unconfigured.
Recommends a discount tier + justification from account size/industry and quote value; falls back to a deterministic size-banded heuristic (labelled) when un…
Flags enabled compliance categories on a post; keyword-rule fallback.
Rewrites a draft to a reference brand voice; returns the original on AI failure.
Drafts a reply to an inbound comment; templated fallback when unconfigured.
Open-time Claude completion stamped per recipient into a kinetic email block; degrades to the configured fallback_text when AI is unavailable or the block op…
Grounded conversational answer over the tenant's own entities: hybrid keyword + semantic retrieval pulls top matches via search_all(), then Claude synthesize…
Maps uploaded CSV/Excel/JSON columns to target fields via Claude (default tier).
The narrated two-paragraph <TodayHero> at the top of every sub-app /today page.
And when the built-ins aren't enough
Author your own agents
Define a custom agent — its goal, its data scope, its guardrails — and it runs on the same trust loop as every built-in: run history, cost attribution to the AI ledger, and accept/override/reject feedback that tunes its next pass. No black-box automations a quarter later.
Ask your workspace, get cited answers
The workspace answer engine answers plain-English questions from your tenant's data — every claim cited back to its source records, retrieval filtered by consent, and the full Q&A logged to the audit trail. An answer you can't trace is an answer it won't give.
Bring your own Claude key.
AI runs on your own Anthropic key, with per-feature data-sharing controls and spend caps. You decide exactly what leaves your workspace.