Skip to main content
A skill is a reusable, versioned rule set the Filed analyst applies automatically during a tax prep or tax advisor run. Skills are scoped to a workspace (WORKSPACE skills, shared firm protocols) or to a single user (USER skills, personal protocols). The Playbook screen in the Filed web app is the human UI over this API. This recipe is the minimal call sequence to list a workspace’s skills for a task family, share a personal skill with the firm, approve or deny that promotion, toggle a skill on or off, and scope which skills apply to a single run. Every call uses a workspaceToken (see Authentication) and goes to the single GraphQL endpoint:
This recipe does not re-document the types it touches. For the full Skill, SkillRule, SkillStrategy, SkillActivityEvent, and UserShortDetails field lists, the SkillKind and SkillStatus enums, and the deleteSkill mutation, see Skills.

1. List a workspace’s skills for a task type

There is no top-level skills query. Read workspace.skills through me { ... on WorkspaceUser { workspace { skills(...) } } } (see Skills). Pass taskType to scope the list to one task family, and showCuratedSkills: true to include Filed’s curated built-in skills alongside the workspace’s own.
Pick the USER skill you want to share with the firm. Save its taskType and name; the promotion mutations in steps 3 and 4 identify a skill by those two values (no kind argument).

2. Fetch one skill’s detail and activity

Before promoting a skill, read its full detail and activity timeline with workspace.skill. Identify the skill with kind + taskType + name (and optional returnType when the skill is scoped to a return type).
workspace.skill returns null when no skill matches the supplied kind + taskType + name (+ returnType). Handle null as a not-found result before you try to promote. See Skills, view a single skill.

3. Request promoting a personal skill to the workspace

requestSkillPromotion submits a USER skill for firm-wide review. The skill’s status moves from NONE to PENDING. A workspace admin then approves or denies it in step 4. The mutation identifies the skill by taskType + name only; there is no kind argument because only USER skills can be promoted.

4. Approve or deny the promotion

A workspace admin resolves the PENDING promotion with one of two mutations. Both identify the skill by taskType + name and return the updated Skill. To approve, call approveSkillPromotion. The skill’s status becomes APPROVED and it applies firm-wide.
To deny, call denySkillPromotion. The skill’s status becomes DENIED and the optional reason is recorded on the activity timeline so the owner can see why the promotion was rejected.
After any of the promotion mutations, refetch GetTaskSkills and GetSkill so the Playbook UI reflects the new status. The web app calls client.refetchQueries({ include: ["GetTaskSkills", "GetSkill"] }) after every bulk action. See Skills, toggle a skill active or inactive.

5. Toggle a skill active or inactive

setSkillActive enables or disables a skill without deleting it. Disabling sets status: DISABLED so the skill stops applying during runs but is still listed and can be re-enabled. Pass returnType when the skill is scoped to a return type.
Re-enable the same skill by calling setSkillActive again with active: true; its status returns to APPROVED.
There is no runSkill mutation. Skills are never invoked directly. The analyst applies every APPROVED (active) skill automatically during a triggerTaxPrep or triggerTaxAdvisor run. The next section shows how to scope which active skills apply to one specific run.

6. Scope which skills apply to a single run

Because skills apply automatically based on their status, the way to control which skills a particular run uses is the optional skills argument (RunSkillSelectionInput) on the trigger mutations: RunSkillSelectionInput takes two optional lists of skill names:
Omit skills entirely to apply all active skills in both scopes. Pass an empty list in one scope to censor every skill in that scope. Pass a non-empty list to apply only those named skills. For example, to start a tax prep run that applies only the workspace skill check-w2-totals and the user skill my-firm-reconciliation, and no others:
Poll the returned taskId per Run tax prep end to end and Tasks. The selected skills shape the review items the analyst raises during the run.

Next steps

  • For the full Skill, SkillRule, SkillStrategy, SkillActivityEvent, and UserShortDetails field lists, the SkillKind and SkillStatus enums, and the deleteSkill mutation, see Skills.
  • To run tax prep with the active skills and read the resulting review items, see Run tax prep end to end and Tax prep.
  • To run tax planning with the active skills and read the resulting strategies, see Run tax planning / advisory and Tax planning.