Trigger Actions Framework

Real work in orgs that use the open-source Trigger Actions Framework (TAF) by Mitch Spano: writing trigger action classes, registering them with custom metadata, ordering, bypass mechanisms, entry criteria, recursion control, DML finalizers, flow actions, migrating legacy triggers and testing actions. Each answer is deployed (check-only) with hidden Apex tests to a scratch org that has TAF 0.3.4 installed; the tests perform real DML and assert that the framework ran the model's actions as specified.

18
tasks
Execution
grading
100%
highest c@3 · Claude Sonnet 5.5, joint first with 3 others
61
configurations with results

How it's graded

Each answer is deployed as a check-only validation, with hidden Apex tests, to a scratch org with the Trigger Actions Framework installed. The tests do real DML and assert that the framework ran the model’s actions as specified: ordering, bypasses, entry criteria and recursion control.

Difficulty mix

5 easy8 medium5 hard

Who's best at Trigger Actions Framework

Within three attempts (c@3) on this suite only, with 95% confidence intervals. With 18 tasks the intervals are wide: where two overlap, those configurations are not clearly different. 1 finished configuration isn’t shown yet: its retries haven’t finished. Open in the full leaderboard →

Trigger Actions Framework: c@3 by configuration with 95% confidence intervals
#Model and configScore c@3 · 95% CITasks
1Claude Sonnet 5.5 effort medium
100%95% CI 82–100
18
1GPT-5.6 Sol effort medium
100%95% CI 82–100
18
1GPT-6 Astra effort high
100%95% CI 82–100
18
1GPT-6.1 Sol effort high
100%95% CI 82–100
18
5Claude Fable 5.1 effort high
94%95% CI 74–99
18
5Claude Opus 5.5 effort high
94%95% CI 74–99
18
5Claude Opus 5.5 effort medium
94%95% CI 74–99
18
5Claude Opus 5.5 effort low
94%95% CI 74–99
18
5Claude Sonnet 5.5 effort high
94%95% CI 74–99
18
5Claude Sonnet 5.5 effort low
94%95% CI 74–99
18
5DeepSeek V4.1 Flash FP8 · effort high
94%95% CI 74–99
18
5DeepSeek V4.1 Flash EXL3 2.9bpw · vLLM + ExLlamaV3 · effort high
94%95% CI 74–99
18
5Gemini 3.8 Flash effort medium
94%95% CI 74–99
18
5GPT-6 Astra effort medium
94%95% CI 74–99
18
5Grok 4.7 effort high
94%95% CI 74–99
18
5Qwen3.8 Flash-Next NVFP4 · vLLM · effort medium
94%95% CI 74–99
18
17DeepSeek V4 Pro FP8 · effort high
89%95% CI 67–97
18
17DeepSeek V4.1 Flash Native FP8, FP4 experts · SGLang · effort high
89%95% CI 67–97
18
17GPT-6 Luna effort medium
89%95% CI 67–97
18
17Grok 4.6 effort high
89%95% CI 67–97
18
17MiMo V2.6 Pro FP8 · thinking on
89%95% CI 67–97
18
17Qwen3.8 Flash-Next MLX 4-bit · MTPLX · effort medium
89%95% CI 67–97
18
23Nemotron 3 Ultra thinking on
83%95% CI 61–94
18
23Qwen3.8 Flash-Next thinking on
83%95% CI 61–94
18
25GLM-5.3 Flash FP8 · effort high
78%95% CI 55–91
18
25Qwen3.8 Flash-Next MLX 4-bit · TensorFold · effort medium
78%95% CI 55–91
18
27Claude Opus 4.8 effort medium
72%95% CI 49–88
18
28Inkling Small FP8 · effort high
67%95% CI 44–84
18
28Qwen3.8 Flash-Next INT4-AutoRound, 5 of 10 experts · TensorFold (Zig) · effort medium
67%95% CI 44–84
18
30Claude Opus 4.8 effort high
61%95% CI 39–80
18
30Mistral Large 4 effort high
61%95% CI 39–80
18
32Claude Opus 4.8 effort low
56%95% CI 34–75
18
32Claude Sonnet 5 effort high
56%95% CI 34–75
18
32GLM-5.3 Flash EXL3 4.0bpw experts, FP8 dense · vLLM + ExLlamaV3 · effort high
56%95% CI 34–75
18
32GLM-5.3 Flash EXL3 4.0bpw experts, 4-bit dense · TensorFold · effort high
56%95% CI 34–75
18
32MiMo V2.6 Flash FP8 + MXFP4 experts · SGLang · thinking on
56%95% CI 34–75
18
32MiMo V2.6 Flash FP8 · thinking on
56%95% CI 34–75
18
32Qwen3.8 27B AWQ-INT4 · vLLM · effort xhigh
56%95% CI 34–75
18
39Claude Haiku 5.5 effort medium
50%95% CI 29–71
18
39Claude Haiku 5.5 effort high
50%95% CI 29–71
18
39Claude Haiku 5.5 effort low
50%95% CI 29–71
18
39Claude Opus 4.8 thinking off
50%95% CI 29–71
18
43DeepSeek V4 Flash Vision experimental FP8 + FP4 experts · vLLM · effort high
44%95% CI 25–66
18
43GLM-5.3 Flash EXL3 4.0bpw experts, FP8 dense · vLLM + ExLlamaV3 · thinking off
44%95% CI 25–66
18
43Qwen3.8 27B MLX 8-bit · MTPLX · effort low
44%95% CI 25–66
18
43Qwen3.8 27B MLX 4-bit · MTPLX · effort low
44%95% CI 25–66
18
47Claude Sonnet 5 effort medium
39%95% CI 20–61
18
47Gemma 4 31B QAT W4A16 · vLLM · thinking on
39%95% CI 20–61
18
47GLM-5.3 Flash EXL3 4.0bpw experts, FP8 dense · vLLM + ExLlamaV3 · effort low
39%95% CI 20–61
18
47Laguna S 2.1 FP4 · thinking on
39%95% CI 20–61
18
47Qwen3.6 35B-A3B NVFP4 · vLLM · thinking on
39%95% CI 20–61
18
47Qwen3.8 27B Splash 4-bit · Splash · effort low
39%95% CI 20–61
18
53Qwen3.8 27B AWQ-INT4 · vLLM · effort medium
36%95% CI 18–59
18
54Claude Haiku 4.5 thinking off
33%95% CI 16–56
18
54Claude Sonnet 5 thinking off
33%95% CI 16–56
18
54Claude Sonnet 5 effort low
33%95% CI 16–56
18
54Qwen3.8 27B AWQ-INT4 · vLLM · effort low
33%95% CI 16–56
18
58Claude Haiku 4.5 thinking on
28%95% CI 13–51
18
58Gemma 4 26B-A4B NVFP4 · vLLM · thinking on
28%95% CI 13–51
18
58Ling 3.0 Flash BF16 · thinking on
28%95% CI 13–51
18
61Nemotron 3.5 Lightning NVFP4 · thinking on
22%95% CI 9–45
18

What's in the suite

Solve rate is the share of finished runs whose first answer to the task passed (pass@1), a rough guide to how hard models find it. Difficulty is the task author’s label; from results is what the solve rate says: easy when two thirds or more of the finished runs pass it, hard at a third or fewer, once five have graded it.

Trigger Actions Framework tasks with difficulty and solve rate
TaskDifficultyFrom resultsSolve rate
Enable the framework on Opportunitytaf-enable-opportunityeasymedium
39%
Normalise new leads in a before-insert actiontaf-lead-normalize-before-inserteasyeasy
82%
Release a new action to pilot users onlytaf-required-permission-piloteasymedium
35%
Skip one action during a contact importtaf-bypass-action-in-importeasyeasy
97%
Switch off a misbehaving action without a code changetaf-disable-action-hotfixeasyeasy
97%
Audit amount changes once despite re-entrant updatestaf-recursion-amount-auditmediummedium
35%
Bypass all Account automation for the integration usertaf-bypass-permission-integrationmediummedium
56%
Bypass one object's actions inside a service, safelytaf-bypass-object-ownership-servicemediumeasy
73%
Create onboarding tasks from an after-insert actiontaf-after-insert-onboarding-taskmediummedium
37%
DML-less unit tests for a trigger actiontaf-dml-less-action-testmediummedium
48%
Filter an action with an entry criteria formulataf-entry-criteria-formulamediumhard
6%
One validation action registered for insert and updatetaf-duplicate-email-two-contextsmediumhard
28%
Run an admin's flow as an ordered trigger actiontaf-register-flow-actionmediummedium
34%
Build a TAF flow action and bypass only that flowtaf-flow-action-authoringhardhard
18%
Migrate a legacy fat Case trigger to trigger actionstaf-migrate-legacy-case-triggerhardmedium
35%
One async sync job per DML operation with a DML finalizertaf-dml-finalizer-erp-synchardhard
31%
Roll up open cases to Account across all after contextstaf-open-case-rolluphardhard
31%
Share one parent query across trigger actionstaf-shared-query-singletonhardmedium
43%

Want this for your team?

Azul Labs runs Forcebench privately for two kinds of Salesforce team.

Choosing a model to run yourself?

A private benchmark of your shortlist

Open-weight models at the quantisations and reasoning efforts you could run on infrastructure you control, tested on your kind of Salesforce work, with a written recommendation.

  • Private tasks written from your work only ever run on local models; they are never sent to an API.
  • Re-testing after any change of model, quantisation or engine is available.
  • Typical turnaround is 2–3 weeks; large models take about a day of machine time per configuration.

Building or buying a Salesforce AI tool?

A private evaluation of your tool

Your tool on held-out tasks it has never seen, against API baselines (models reached through a hosted service) and Local ones (served on Forcebench’s own hardware), with a written report on where it holds up and where it fails.

  • It can start as a smaller pilot, about 30 held-out tasks with your tool against two baselines, before a full evaluation.
  • Repeat evaluations after your releases are available.
  • Typical turnaround is 2–3 weeks.

Fixed fee, quoted up front. The quote depends on the number of tasks and the number of models, tools or configurations tested.

Or email leo@azl.au · azl.au