Skip to content
Development
Skill

/records-and-metadata

Retrieving individual NetSuite records by type and internal ID, and discovering a record type's available fields via record-type metadata. Read-only — retrieving existing records, not creating or updating them.

From plugin
msp-claude-plugins
52200 skills146 agents200 commands4 MCP

Claude Code

$ npx -y skills add wyre-ai/msp-claude-plugins --skill records-and-metadata --agent claude-code

SKILL.md

records-and-metadata.SKILL.md
name: "NetSuite Records & Metadata"
description: >
  Retrieving individual NetSuite records by type and internal ID, and
  discovering a record type's available fields via record-type metadata.
  Read-only — retrieving existing records, not creating or updating them.
when_to_use: >-
  When looking up a specific NetSuite record (customer, vendor, sales
  order, invoice, or any other record type) by its internal ID, or when
  you need to know what fields a NetSuite record type has before querying
  or reading it. Use when: netsuite record, netsuite customer, netsuite
  vendor, netsuite invoice, netsuite sales order, record type, internal
  id, or netsuite field.

NetSuite Records & Metadata

Overview

NetSuite organizes almost everything as a typed record — `customer`, `vendor`, `salesorder`, `invoice`, `employee`, and many more, each with its own internal ID and field set. This skill covers looking a specific record up directly when you already know (or can pin down) its type and ID, and discovering what fields a record type actually has before you go looking for one.

Anti-triggers

  • **Finding records by criteria you don't have an ID for** — use

`suiteql-queries` to search, then retrieve the specific record here if needed.

  • **Creating or updating a record** — this plugin is read-only. See

[GOVERNANCE.md](../../GOVERNANCE.md), *Tool permission tiers*: `ns_createRecord` and `ns_updateRecord` are the two write tools this plugin deliberately excludes. Make the change directly in the NetSuite UI, with the same care you'd give any change to a client's financial system of record.

  • **Reports or saved searches already built for this data** — use

`reports-and-saved-searches` rather than re-deriving what a report already computes.

  • **Auth, role permissions, or error handling** — use `api-patterns`.

Core Concepts

Every NetSuite record has a record type (a fixed string like `customer` or `salesorder`) and an internal ID (a number, unique within that type). Record-type metadata describes the fields a given type carries — names, data types, and (per NetSuite's `ns_getRecordTypeMetadata` tool) can be requested for a single type or for all types at once. What a record actually returns when retrieved depends entirely on the connected role's view permissions on that type and its fields — the same way it would if a human opened the record in the NetSuite UI.

API Patterns

The confirmed read tool family for this domain:

  • `ns_getRecord` — retrieves a record in NetSuite by type and internal ID
  • `ns_getRecordTypeMetadata` — retrieves metadata (available fields and

data types) for all NetSuite record types, or for a specific type

Both are documented by Oracle at [Available Tools in the MCP Standard Tools SuiteApp](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/article_0902023508.html). The corresponding write tools, `ns_createRecord` and `ns_updateRecord`, are excluded from this plugin — see [GOVERNANCE.md](../../GOVERNANCE.md).

**A note on record-type-specific commands:** this plugin does not ship a separate command per record type (e.g. no dedicated "get customer" vs. "get vendor" command). `ns_getRecord` is generic across record types by design, and this plugin's `/get-record` command is built directly against that generic tool rather than inventing per-type wrappers that don't correspond to anything the underlying MCP surface exposes.

Common Workflows

Looking up a customer before an escalation

A support ticket references a customer by name, not ID:

1. If the internal ID isn't known, use `suiteql-queries` to find it (e.g. `SELECT id, companyname FROM customer WHERE companyname LIKE '...'`) 2. Call `ns_getRecord` with type `customer` and the resolved ID 3. Report the fields relevant to the escalation — don't dump the entire record if only a few fields matter

Confirming a record type's fields before writing a SuiteQL query

Before querying an unfamiliar record type:

1. Call `ns_getRecordTypeMetadata` for that type 2. Use the returned field names and types to write an accurate SuiteQL query in `suiteql-queries`, rather than guessing at field names

Gotchas

  • **Retrieval respects the connected role's field-level permissions, not

just record-level.** A role with view access to a record type can still have specific fields withheld — a retrieved record missing an expected field may be a permission boundary, not a data gap.

  • **Internal IDs are per-type, not global.** Customer 12345 and sales

order 12345 are unrelated records; always pair an ID with its record type.

  • **This is a read-only lookup, with no exceptions.** Even a trivial

correction (fixing an obviously wrong field) is outside this plugin — escalate to a human with direct NetSuite access.

Related Skills

  • [Reports & Saved Searches](../reports-and-saved-searches/SKILL.md) — Pre-built aggregations and lookups
  • [SuiteQL Queries](../suiteql-queries/SKILL.md) — Finding records by criteria
  • [API Patterns](../api-patterns/SKILL.md) — Auth, roles, and error handling
Read more
@wyre-technology
Ships withmsp-claude-plugins

One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: mcp.wyre.ai

52200 skills146 agents4 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
52
Star history of wyre-technology/msp-claude-plugins on GitHub, a chart by star-history.com

Other skills on msp-claude-plugins.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills13d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react4d252k
@facebook@facebookInstall Skill

Questions about records-and-metadata.

Which coding agents can use records-and-metadata?
records-and-metadata installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.