Every Feature
What FlowMason ships
and what it achieves
Every surface. Every capability. Every reason a Salesforce developer installs FlowMason instead of building from scratch.
30+ AI actions in every Flow Builder
Every FlowMason capability ships as an @InvocableMethod —
available in the Action palette of every Salesforce Flow. Admins drag and drop AI.
Developers define the pipeline. No HTTP boilerplate, no credential wiring, no retries.
@InvocableMethod(
label='AI: Summarize Record'
category='FlowMason AI'
description='Summarize any record using AI'
)
global static List<Response> summarize(
List<Request> requests
) {
return FMInvocableRunner.run(
'summarize_v1', requests
);
} Drop AI on any record page — no backend code
6 fully encapsulated LWC components. Drag onto any page layout in App Builder. Configure via page builder properties — no Apex, no custom component code.
c-fm-ai-summary Any record page
AI-generated summary based on record data and a prompt template. Cached with configurable TTL.
c-fm-ai-chat Any page
Contextual AI chat with conversation history. Can load record context automatically.
c-fm-ai-next-best-action Record pages
Shows ranked AI-generated action recommendations based on record state.
c-fm-ai-field-suggester Record detail fields
AI-suggested values for empty or low-confidence fields, with one-click accept.
c-fm-ai-similar-records Any record page
Semantic similarity search — shows top-N related records via embeddings.
c-fm-ai-case-triage Service Cloud
Auto-classifies case priority and category. Optional auto-route to the right queue.
Bulkified async AI in triggers — one line
Bind any pipeline to any SObject event. FlowMason handles bulkification, async chaining, governor limit safety, retry logic, audit logging, and cost attribution automatically.
- Bulkification — All records in a batch sent to the LLM together — one API call, not N.
- Async chaining — Queueable jobs auto-chain within governor limits. No manual depth management.
- Retry on failure — Transient LLM errors auto-retried with exponential backoff. Configurable max retries.
- Per-record audit — Every trigger invocation logged — record ID, pipeline, response, tokens, user.
trigger OpportunityTrigger on
Opportunity(after insert, after update) {
// One line. That's it.
fm.PipelineTrigger.handle(
'opportunity_ai_enrichment',
Trigger.new,
Trigger.oldMap
);
} Visual authoring. Developer output.
Design pipelines visually — define stages, wire prompt templates, configure providers.
Hit Publish and FlowMason auto-generates the @InvocableMethod class,
the fm.LLM facade, LWC variant, SFDX metadata, and a test skeleton.
Pipelines deploy via sf project deploy like any other metadata.
Design
Drag stages onto the canvas, connect inputs/outputs, set prompts
Publish
FlowMason generates all 4 surfaces + SFDX metadata
Deploy
sf project deploy — same as every other metadata type
Provider Neutrality
Any model.
One interface.
Switch providers with a single config change. No refactoring. No redeployment. Your business rules, your model choice.
// org-default in FM_Config__mdt (one metadata record)
- DeveloperName: default_provider Value: anthropic
+ DeveloperName: default_provider Value: openai
// or per-call override — no org config change needed
fm.LLM
.withProvider('bedrock')
.withModel('anthropic.claude-3-5-sonnet')
.summarize(recordId, prompt); Enterprise Governance
The observability
Agentforce doesn't give you.
Audit logs, cost attribution, FLS enforcement, tenant isolation — built into the runtime, not bolted on.
Full Audit Log
Every LLM call logged: who triggered it, which record, which pipeline, prompt version, response, tokens. Queryable via SOQL. Exportable.
SELECT Pipeline__c, Record_Id__c, Token_Count__c,
Created_By__c, CreatedDate
FROM FM_Audit_Log__c
WHERE CreatedDate = LAST_N_DAYS:30 Cost Attribution
Token costs broken down by pipeline, user, team, and time period. Know exactly which automation spent $4,000 last month.
fm.Cost.getByPipeline('opportunity_enrichment', 30);
// → { totalUSD: 412.30, calls: 1842, avgTokens: 312 } FLS + CRUD Enforcement
Every SOQL query and DML goes through FMSecurityUtil. Field-level security checks are baked into every data operation — not optional.
FMSecurityUtil.checkObjectRead('Opportunity');
FMSecurityUtil.checkFieldAccessible(
'Opportunity',
new List<String>{'Amount', 'Name'}
); Tenant Isolation
API keys encrypted at rest per org. No cross-tenant data access. Namespaced metadata. Built for Salesforce's multi-tenant security model.
// Encrypted — never in plaintext
FM_Secret__c key = FMVaultUtil.getKey(
'anthropic_api_key'
);
// Org-scoped. Cannot be accessed cross-org.