What happens
Freshservice setup
Step 1 — Create a dedicated API user
Create a Freshservice agent account that the integration will authenticate as. Using a dedicated account makes it easy to audit integration activity and revoke access without affecting human users.- Go to Admin → Agents → New Agent
- Set:
- Full name:
Forager Integration - Email:
forager@yourcompany.com(a real address you control) - Role:
IT Agent(minimum required for asset writes)
- Full name:
- Save and copy the agent’s API key from Profile Settings → API Key
Step 2 — Create custom fields on your asset type
Freshservice’s nativelocation field is a hierarchical reference — it doesn’t accept freeform text. The simplest path is to add four custom fields to store Forager data directly.
- Go to Admin → Asset Management → Asset Types
- Select your primary asset type (e.g.
Computer,Medical Device) - Go to the Fields tab → Add Field
- Add these four fields:
Note the field name (not label) for each — it will look like
forager_location, forager_room, etc. You’ll need these exact names in the proxy.
Proxy deployment
The proxy is a lightweight serverless function. It sits between Forager and Freshservice, receives the webhook payload, looks up the asset by tag, and calls the Freshservice API to update the record.Option A — Deploy to Vercel (recommended, free tier is sufficient)
- Create a new directory and initialize a project:
- Create
api/forager.js:
- Create
.env(for local testing only — never commit this):
- Deploy to Vercel:
https://forager-freshservice-proxy.vercel.app).
- Set environment variables in the Vercel dashboard: Project → Settings → Environment Variables. Add
FS_DOMAIN,FS_API_KEY, andSHARED_SECRET.
Option B — AWS Lambda (Node.js 20.x)
Use the same handler code above. Set the three environment variables in the Lambda function’s configuration. Use an API Gateway HTTP API trigger and copy the invoke URL as your webhook endpoint.Forager configuration
- Go to Dashboard → Settings → Webhooks → Add Webhook
- Fill in:
- Click Add Webhook. The webhook fires on every attestation from this point forward.
Testing
Send a test payload to your proxy to verify the Freshservice update works before relying on real scan data:Last discovered atis updatedForager Locationcustom field showsMemorial Hospital / Floor 3 / Biomedical StorageForager Confirmed ByshowsMaria Ortega