Skip to main content
Some facts the business relies on are written down nowhere. No SOW says “this was a healthcare project”, but everyone knows it was, because the client is a hospital system. No resume lists every skill a project used, but the project description makes it obvious. An enrichment rule writes these facts into the graph after ingestion. It reads a node (and, if you want, its neighbours), follows a plain-language instruction, and writes back an attribute, a node, a relationship, or both. This workshop decides which of those business rules are worth automating, and writes each one so it can be tested. Run it in Phase 3, after the first pilot ingestion. Rules written against an empty graph are guesses. With real nodes on screen, the room can see which gaps actually hurt the golden questions.

At a glance

Before the workshop

FFE and Experio SMEs
  • Run the golden questions against the pilot graph. For each partial or failed answer, note whether the missing fact is in a source but not extracted (fix extraction) or not stated anywhere (enrichment candidate).
  • Pick five real nodes per candidate target type to test on during the session.
  • Check the taxonomies the rules will use are loaded and their leaf values are active.
Client homework (SMEs)
  • Bring the “everybody knows” rules for your use case: how you’d tag, group or connect things if you did it by hand in a spreadsheet.
  • For each rule, bring two or three examples with the answer you’d expect.

Which tool for which fact

Ask this for every candidate. Most “rules” turn out to belong somewhere else. Prefer the source over a rule. If a system of record holds the fact, map it. A rule is an informed guess by a model; a mapped column is the firm’s own record.

Agenda

Running the workshop

For each rule, fill in one row of the worksheet: Notes for writing the prompt:
  • Placeholders. In Selected Attributes mode, use {attribute_name} (for example {description}). In Full Node and Neighborhood mode, {node} inserts the whole node. In Neighborhood mode, {related.Label.attr} inserts an attribute from each related node of that type, such as {related.Client.industry}.
  • Taxonomies. @Industry expands to the active leaf values of the Industry taxonomy, so the model chooses from your list rather than inventing labels.
  • Relationship outputs link to existing nodes only. For a Relationship output, Experio looks up the target node by a match attribute (default name), either Exact match only or Exact, then vector similarity (the second needs a vector index on the target type). If no node matches, that link is skipped. Use Node + relationship when the target should be created.
  • No “today”. The rule prompt is not given the current date. Rules that depend on today’s date go stale the day after they run. Leave those to the question.

Testing

Open the rule’s Preview Rule page and run it on a small sample of nodes. The preview makes no changes to the graph. Compare the output with the expected results on the worksheet. Fix the prompt and preview again until the sample is right. Then run the job, and spot-check results through lineage on the node.

Running

Enrichment rules do not run automatically per file. They run when you start them:
  • On demand: Run Job from Model & Define > Enrichment Rules. Turn on Overwrite existing values only when you want to re-process nodes that already have a result.
  • After ingestion: add an Enrichment step to a Flow in Process > Flows, after the scan and ingestion steps, and schedule it. This is the normal setup after go-live, so new documents are enriched on each refresh.
Every write is recorded in lineage, so users can see which rule and model produced a value.

Worked example: Northbridge Consulting

The pilot showed golden questions Q1 (“cloud migration projects for healthcare clients”) and Q4 (“Azure data platform experience in healthcare”) returning partial answers. Projects had no industry, and skills lived only on people. Three rules came out of the session.

Rule 1: Tag project industry

Rule 2: Infer skills used

The Project description is filled from the SOW scope during extraction, so this rule reads the SOW’s scope indirectly.
Because this is a Relationship output, it links only to Skill nodes that already exist with exactly that name. Skill nodes come from resumes, which are extracted with @Skills in their instructions, so names line up. Skills no one at Northbridge lists on a resume are skipped. The room accepted that.

Rule 3: Obligation due soon flag (not adopted)

Helen Park asked for due_within_90_days on Obligation. The team wrote it out:
It was dropped. The prompt has no reliable “today”, and the flag would be wrong a day after each run. Instead, golden question Q7 is answered at question time, where Cypher compares due_date with the current date. The rule stayed on the worksheet with the reason, so nobody proposes it again.

Running at Northbridge

Marcus built a Flow “Nightly refresh”: scan SharePoint → ingestion → Enrichment (Rule 1) → Enrichment (Rule 2), scheduled nightly. Both rules keep their “is null” / “is not null” filters so re-runs process only new nodes.

Accelerate with AI

No AI helper drafts enrichment rules today. Admin Copilot (⌘J) can explain input modes, placeholders and output types from these docs while you write a rule. The best accelerator is the Preview Rule page. Iterate on real nodes rather than debating the prompt in the abstract.

Entering it in Experio

1

Create the rule

Model & Define > Enrichment Rules > Create Rule. Enter a name and description, choose the target node label, and add a target filter (attribute, operator, value; combine with AND or OR).
2

Set input, prompt and output

Choose the input mode, write the prompt with placeholders and @TaxonomyName tags, then configure the output type. Add per-attribute output instructions if the format matters (“title case”, “most specific match”).
3

Preview

From the rules list, open Preview Rule, set a small limit and run it. Nothing is written.
4

Run and schedule

Run Job once, and check results on the rule’s Jobs tab and in lineage. Then add an Enrichment step to a Flow in Process > Flows and schedule it.
See Enrichment Rules and Flows. Rules show a compatibility status. An invalid rule (for example, its target label or output attribute was removed from the ontology) cannot run until it is fixed and re-validated.

Common pitfalls

  • Writing a rule for a fact a system already holds. Map it instead.
  • Writing a rule for a fact the document states. Fix the extraction instructions instead.
  • Free-text outputs where a list exists. Without @TaxonomyName, the model invents near-duplicate labels (“Health Care”, “Healthcare Providers”).
  • Expecting a Relationship output to create targets. It links to existing nodes only. Use Node + relationship when targets must be created.
  • Rules that depend on today’s date. They go stale. Answer them at question time.
  • No target filter. Every run re-processes every node, costs more, and can overwrite reviewed values if Overwrite is on.
  • Assuming rules run per file. They run only on demand or in a Flow. Without a scheduled Flow, new documents are never enriched.

Exit criteria

  • Every candidate rule is sorted with the decision table, and the reason is recorded.
  • Each adopted rule has a worksheet row: target, filter, input mode, prompt, taxonomy, output, expected results.
  • Each rule is previewed on at least five real nodes and matches the expected results.
  • Each rule has run once, and results are spot-checked in lineage.
  • A scheduled Flow runs the rules after ingestion, in the right order.
  • The affected golden questions are re-run and their results recorded.

Next

If the firm needs to restrict who sees what, continue to Workshop 9: Access Control. Otherwise go to Workshop 10: Assistants & Agent Flows.