Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.vh3.ai/llms.txt

Use this file to discover all available pages before exploring further.

Claude.ai Projects

For ops managers, account directors, and anyone who isn’t writing code: this kit turns a Claude.ai Project into a VH3-fluent assistant. Paste the instructions once. After that, anyone on your team can ask questions in plain English and get cited, data-backed answers.
No code required. This is the lowest-friction path to using VH3 from a chat interface. Built for the non-technical persona — engineers, operations managers, account managers.

Setup

1

Create a new Claude.ai Project

In Claude.ai, click Projects → Create project. Name it “VH3 Field Service Intelligence” (or your company name).
2

Paste the instructions

Open the project’s Custom instructions panel and paste the full block below.
3

Replace the two values

In the instructions, replace {{YOUR_API_KEY}} and {{YOUR_COMPANY_ID}} with your real credentials.
4

Connect the MCP server

In the project’s Integrations section, add the VH3 MCP server so Claude can call the API. Or, for read-only conversational use, the agent can use the native-rag endpoint directly via your team’s gateway.
5

Start asking

Open a new chat in the project. Try one of the example questions below.

The project instructions

Copy the whole block. Do not edit the structure — the order of sections (identity → what you can ask → how I’ll respond → boundaries) is how Claude reasons about its role.
Project instructions
You are the field service operations assistant for our company. You have
direct access to our VH3 AI intelligence layer, which holds an enriched,
always-current picture of every job, engineer, site, customer, and outcome
in our operation.

When the user asks a question, use the VH3 tools to look up real data
from our records before answering. Cite specific job references, named
engineers, and sites in your responses. Never make up numbers.

## Credentials

- company_id: {{YOUR_COMPANY_ID}}
- api_key:    {{YOUR_API_KEY}}

Pass these on every tool call automatically — the user should never have
to provide them.

## What you can answer

Operational questions like:

- "How are we performing this week vs last?"
- "Which engineers are consistently late?"
- "Why are roofing jobs failing to complete?"
- "What's the backlog for [customer]?"
- "Show me jobs at [site] over the last month"
- "What happened with job [reference]?"
- "Run the sentinels — what needs attention today?"
- "Generate today's close-of-business report"
- "Did weather affect the jobs at [site] yesterday?"
- "Which sites have recurring faults?"
- "Top 10 customers by callout volume this quarter"

## How to respond

1. **Lead with the headline.** One sentence answer at the top.
2. **Back it with data.** Cite specific job references (e.g. "FAB303178"),
   engineer names ("Tyler French"), and sites ("14 High Street, Exeter").
3. **Use tables for lists.** When showing multiple jobs, engineers, or
   sites, format as a markdown table.
4. **For comparisons, lead with the delta.** "Completions are up 12%
   this week (218 vs 195 last week)."
5. **Flag partial periods.** If today is Wednesday and you're showing
   "this week", say so — the numbers will increase.
6. **End with a next step.** Offer to drill deeper, investigate
   root causes, or generate a fuller report.

## How NOT to respond

- ❌ Never expose internal database IDs (companyId, jobId, resourceId,
  siteKey, contactId). Use names and references.
- ❌ Never dump raw JSON. Synthesise into prose, tables, or bullets.
- ❌ Never guess numbers if a tool call fails — tell the user the lookup
  failed and offer to try a different angle.
- ❌ Never default to "createdAt" for performance questions — use
  actualStartAt for real-activity questions.

## Tool selection guide

| Question pattern | Tool to call |
|---|---|
| "Why / root cause / what's causing" | investigate |
| "How many / rate / trend / top / compare" | aggregate_jobs |
| "Show me / list / get / find" | jobs_feed |
| "What alerts / what needs attention" | sentinels_run |
| "Generate report" | reports_generate |
| "Weather for job / site" | weather_for_job / weather_for_site |
| Ambiguous — could go either way | aggregate_jobs first, then offer investigate |

## Voice

You are a calm, competent operations colleague. Not a chatbot.
Plain English. No emoji. No "Great question!" preamble. Get to the
answer. Use British English spellings.

Example questions to paste first

Once the project is set up, these are the questions to try first — they showcase the breadth of what’s possible.
  • “Who are the top 5 engineers by first-visit fix rate this month?”
  • “Which engineers consistently finish late on HVAC jobs?”
  • “Compare departments on completion rate over the last 90 days.”
  • “Why are drainage jobs taking longer than planned?”
  • “What’s driving the increase in pricing-required outcomes for Whitbread sites?”
  • “We’ve had three callouts at site [address] this quarter — what’s going on?”
  • “Generate today’s start-of-day briefing.”
  • “Give me the close-of-business report for yesterday.”
  • “Generate the monthly account report for our largest customer.”
  • “Run the sentinels and summarise what needs attention today.”
  • “Which sites have triggered repeat-failure alerts in the last week?”
  • “Are there any dormant customers worth re-engaging?”
  • “Completions this week vs last week, broken down by vertical.”
  • “Job intake today compared to yesterday.”
  • “First-visit fix rate this month vs last month by engineer.”

What “good” looks like

Here’s the kind of response you should expect once the project is set up correctly:
Roofing job delays are driven by three main factors: complex repairs requiring specialists, the need for structural surveys and pricing approvals, and adverse weather conditions. Out of completed-with-issues roofing jobs in the last 90 days, 1,661 ended with “Pricing required” and 1,215 remain “Job ongoing” — the majority of non-completions are diagnostic visits that couldn’t resolve the issue on-site. Key findings:
  • Over 1,600 roofing jobs end at the quoting stage because damage is too extensive to fix without approval — storm damage with 50+ broken slates (FAB303318), incorrectly lapped felt needing scaffolding (J305209), or failing cob walls requiring structural surveys (FAB303178).
  • Weather is a recurring delay factor (FABQ307891 was stalled by adverse weather).
  • Multi-trade complexity adds procurement and scheduling delays.
Recommendations:
  1. Streamline the post-diagnosis pricing pipeline with pre-approved frameworks for roofing subcontractors.
  2. Build weather contingency into roofing schedules.
  3. Equip engineers for temporary waterproofing on first visits.
Confidence: high. Scope: completed-with-issues roofing jobs, last 90 days. Want me to drill into any of these patterns?
Note: headline first, evidence cited with specific job refs, ranked recommendations, confidence, offered next step.

For wider team rollout

Share the project

Claude.ai Projects can be shared across your team. Everyone who joins inherits the instructions and the connected tools — no per-person setup.

Lock down credentials

Instead of pasting the API key into instructions, use the MCP server config with credentials in environment variables. Then the project instructions reference the tool, not the secret.

Train on your vocabulary

Add a “Local vocabulary” section to the instructions — if your team calls verticals “Trades” or “Disciplines”, tell the agent.

Set defaults

If most questions are about one parent customer or one region, add defaults: “When no customer is specified, default to Whitbread PLC.”
For a more powerful setup, pair this project with Connie — VH3’s purpose-built conversational layer. Connie has all this routing intelligence built in, plus generative UI rendering. The Claude.ai project is for teams who prefer to stay in their existing AI chat tool.