jpskill.com
💼 ビジネス コミュニティ 🟡 少し慣れが必要 👤 経営者・事業責任者・マーケ

💼 Net Suite Automation

NetSuite Automation

Oracle NetSuite ERP(統合業務システム)を使って

⏱ 営業メール作成 15分/通 → 1分/通

📺 まず動画で見る(YouTube)

▶ 【自動化】AIガチ勢の最新活用術6選がこれ1本で丸分かり!【ClaudeCode・AIエージェント・AI経営・Skills・MCP】 ↗

※ jpskill.com 編集部が参考用に選んだ動画です。動画の内容と Skill の挙動は厳密には一致しないことがあります。

📜 元の英語説明(参考)

NetSuite Automation: manage customers, sales orders, invoices, inventory, and records via Oracle NetSuite ERP with SuiteQL queries

🇯🇵 日本人クリエイター向け解説

一言でいうと

Oracle NetSuite ERP(統合業務システム)を使って

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o netsuite-automation.zip https://jpskill.com/download/1857.zip && unzip -o netsuite-automation.zip && rm netsuite-automation.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/1857.zip -OutFile "$d\netsuite-automation.zip"; Expand-Archive "$d\netsuite-automation.zip" -DestinationPath $d -Force; ri "$d\netsuite-automation.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して netsuite-automation.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → netsuite-automation フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-17
同梱ファイル
1

💬 こう話しかけるだけ — サンプルプロンプト

  • NetSuite Automation で、私のビジネスを分析して改善案を3つ提案して
  • NetSuite Automation を使って、来週の会議用の資料を作って
  • NetSuite Automation で、現状の課題を整理してアクションプランに落として

これをClaude Code に貼るだけで、このSkillが自動発動します。

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

NetSuite Automation

顧客や販売注文の作成、SuiteQLクエリの実行、外部IDによるレコードのアップサート、レコードメタデータの検査など、Oracle NetSuite ERPの操作を自動化し、包括的なビジネス管理を実現します。

ツールキットのドキュメント: composio.dev/toolkits/netsuite


セットアップ

このスキルには、https://rube.app/mcp に接続された Rube MCP サーバーが必要です。

ツールを実行する前に、netsuite ツールキットのアクティブな接続が存在することを確認してください。アクティブな接続がない場合は、RUBE_MANAGE_CONNECTIONS を介して接続を開始してください。


コアワークフロー

1. 販売注文の作成

品目参照、数量、価格を含む明細項目で顧客注文を作成します。

ツール: NETSUITE_CREATE_SALES_ORDER

主要なパラメーター:

  • entity (必須) -- 顧客参照: {"id": "<internal_id>"}
  • item (必須) -- items 配列を含むコンテナ。各要素には以下が含まれます:
    • item (必須) -- 品目参照: {"id": "<internal_id>"}
    • quantity (必須) -- 注文数量 (非負)
    • rate -- 単価 (品目にデフォルト価格がある場合はオプション)
    • amount -- 明細合計金額 (rate の代替)
    • taxcode -- 税コード参照: {"id": "<internal_id>"} (SuiteTax が有効な場合は必須)
    • description -- 明細項目メモ
  • tranDate -- 取引日 (YYYY-MM-DD 形式)
  • memo -- ヘッダーメモ
  • orderStatus -- "A" (承認待ち) または "B" (履行待ち)
  • otherrefnum -- 外部参照またはPO番号

例:

Tool: NETSUITE_CREATE_SALES_ORDER
Arguments:
  entity: {"id": "1234"}
  item: {
    "items": [
      {"item": {"id": "56"}, "quantity": 10, "rate": 25.00},
      {"item": {"id": "78"}, "quantity": 5, "rate": 50.00}
    ]
  }
  tranDate: "2026-02-11"
  memo: "Q1 bulk order"
  orderStatus: "B"

2. SuiteQLクエリの実行

サーバーサイドページングを使用して、NetSuiteデータに対してアドホックなSQLクエリを実行します。

ツール: NETSUITE_RUN_SUITEQL_QUERY

主要なパラメーター:

  • q (必須) -- SuiteQL SELECT ステートメント
  • limit -- ページあたりの行数 (デフォルトは可変)
  • offset -- 最初の行のゼロベースインデックス (limit の倍数である必要があります)

例:

Tool: NETSUITE_RUN_SUITEQL_QUERY
Arguments:
  q: "SELECT id, companyname, email FROM customer WHERE isinactive = 'F' ORDER BY companyname"
  limit: 100
  offset: 0
Tool: NETSUITE_RUN_SUITEQL_QUERY
Arguments:
  q: "SELECT id, entitystatus, total FROM transaction WHERE type = 'SalesOrd' AND trandate >= '2026-01-01'"
  limit: 50

3. 顧客の作成と管理

子会社割り当てと連絡先詳細を含む新しい顧客レコードを作成します。

ツール:

  • NETSUITE_CREATE_CUSTOMER -- 新しい顧客を作成します
  • NETSUITE_GET_CUSTOMER -- 内部IDで顧客を取得します
  • NETSUITE_UPDATE_CUSTOMER -- 既存の顧客を更新します (PATCHセマンティクス)

NETSUITE_CREATE_CUSTOMER の主要なパラメーター:

  • body (必須) -- 顧客データを含むJSONオブジェクト。必須フィールド:
    • subsidiary -- id (子会社内部ID) を持つオブジェクト
    • companyName (企業の場合) または firstName + lastName (個人の場合) のいずれか
    • オプション: email, phone, isPerson (個人の場合は "T" に設定), comments
  • replace -- 完全置換するサブリスト名をカンマ区切りで指定します (例: "contacts,addressbook")

例:

Tool: NETSUITE_CREATE_CUSTOMER
Arguments:
  body: {
    "companyName": "Acme Corp",
    "subsidiary": {"id": "1"},
    "email": "info@acme.com",
    "phone": "555-0100"
  }

4. 外部IDによるレコードのアップサート

外部識別子を使用して、レコードを冪等に作成または更新します。同期ワークフローに不可欠です。

ツール: NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID

主要なパラメーター:

  • record_type (必須) -- レコードタイプ名。例: "customer", "salesorder", "customrecord_myrec"
  • external_id (必須) -- 外部ID値 (文字、数字、アンダースコア、ハイフンのみ)
  • body (必須) -- レコードスキーマに一致するJSONオブジェクト。作成時には必須フィールドを含めます

例:

Tool: NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID
Arguments:
  record_type: "customer"
  external_id: "CRM-CUST-42"
  body: {
    "companyName": "Acme Corp",
    "subsidiary": {"id": "1"},
    "email": "updated@acme.com"
  }

警告: 冪等性は、一貫した外部IDの使用に依存します。不一致は、更新ではなく追加のレコードをサイレントに作成します。


5. レコードメタデータの検査

レコードを作成または更新する前に、利用可能なフィールド、データ型、制約、および要件を検出します。

ツール: NETSUITE_GET_RECORD_METADATA

主要なパラメーター:

  • record_type (必須) -- 例: "customer", "salesorder", "invoice", "vendor", "employee", "item"
  • accept -- "application/schema+json" (デフォルト、JSON Schema) または "application/swagger+json" (OpenAPI 3.0)

例:

Tool: NETSUITE_GET_RECORD_METADATA
Arguments:
  record_type: "salesorder"

6. レコードのリストとフィルタリング

オプションのフィルタリングとページネーションを使用して、複数のレコードを取得します。

ツール: NETSUITE_LIST_RECORDS

主要なパラメーター:

  • recordType (必須) -- 例: "customer", "salesorder"
  • q -- N/query演算子を使用したフィルター式。例: "email START_WITH \"barbara\""
  • limit -- ページあたりの最大レコード数 (1~1000、デフォルト1000)
  • offset -- ゼロベースインデックス (limit で割り切れる必要があります)

サポートツール:

  • NETSUITE_FILTER_RECORD_COLLECTION -- 代替フィルタリング (SuiteQLの二次的なもの)
  • NETSUITE_GET_RECORD_SELECTED_FIELDS -- 特定のフィールドのみを取得 (ペイロードを削減)

推奨される実行計画

  1. 必須フィールドを検出するために NETSUITE_GET_RECORD_METADATA を使用してレコードスキーマを検査します
  2. 重複を避けるために NETSUITE_RUN_SUITEQL_QUERY を使用して既存のレコードを検索します
  3. SuiteQLを使用してメールで顧客を検索します。見つかった場合は NETSUITE_GET_CUSTOMER で詳細を取得します
  4. 必要に応じて NETSUITE_CREATE_CUSTOMER を使用して顧客を作成します (subsidiary が設定されていることを確認してください)
  5. 品目の内部を検証します

(原文がここで切り詰められています)

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

NetSuite Automation

Automate Oracle NetSuite ERP operations including creating customers and sales orders, running SuiteQL queries, upserting records by external ID, and inspecting record metadata for comprehensive business management.

Toolkit docs: composio.dev/toolkits/netsuite


Setup

This skill requires the Rube MCP server connected at https://rube.app/mcp.

Before executing any tools, ensure an active connection exists for the netsuite toolkit. If no connection is active, initiate one via RUBE_MANAGE_CONNECTIONS.


Core Workflows

1. Create Sales Orders

Create customer orders with line items including item references, quantities, and pricing.

Tool: NETSUITE_CREATE_SALES_ORDER

Key Parameters:

  • entity (required) -- Customer reference: {"id": "<internal_id>"}
  • item (required) -- Container with items array, each containing:
    • item (required) -- Item reference: {"id": "<internal_id>"}
    • quantity (required) -- Units to order (non-negative)
    • rate -- Unit price (optional if item has default pricing)
    • amount -- Total line amount (alternative to rate)
    • taxcode -- Tax code reference: {"id": "<internal_id>"} (required if SuiteTax enabled)
    • description -- Line item notes
  • tranDate -- Transaction date in YYYY-MM-DD format
  • memo -- Header memo
  • orderStatus -- "A" (Pending Approval) or "B" (Pending Fulfillment)
  • otherrefnum -- External reference or PO number

Example:

Tool: NETSUITE_CREATE_SALES_ORDER
Arguments:
  entity: {"id": "1234"}
  item: {
    "items": [
      {"item": {"id": "56"}, "quantity": 10, "rate": 25.00},
      {"item": {"id": "78"}, "quantity": 5, "rate": 50.00}
    ]
  }
  tranDate: "2026-02-11"
  memo: "Q1 bulk order"
  orderStatus: "B"

2. Run SuiteQL Queries

Execute ad-hoc SQL queries against NetSuite data with server-side paging.

Tool: NETSUITE_RUN_SUITEQL_QUERY

Key Parameters:

  • q (required) -- SuiteQL SELECT statement
  • limit -- Rows per page (default varies)
  • offset -- Zero-based index of first row (must be a multiple of limit)

Examples:

Tool: NETSUITE_RUN_SUITEQL_QUERY
Arguments:
  q: "SELECT id, companyname, email FROM customer WHERE isinactive = 'F' ORDER BY companyname"
  limit: 100
  offset: 0
Tool: NETSUITE_RUN_SUITEQL_QUERY
Arguments:
  q: "SELECT id, entitystatus, total FROM transaction WHERE type = 'SalesOrd' AND trandate >= '2026-01-01'"
  limit: 50

3. Create and Manage Customers

Create new customer records with subsidiary assignment and contact details.

Tools:

  • NETSUITE_CREATE_CUSTOMER -- Create a new customer
  • NETSUITE_GET_CUSTOMER -- Retrieve customer by internal ID
  • NETSUITE_UPDATE_CUSTOMER -- Update existing customer (PATCH semantics)

Key Parameters for NETSUITE_CREATE_CUSTOMER:

  • body (required) -- JSON object with customer data. Required fields:
    • subsidiary -- Object with id (subsidiary internal ID)
    • Either companyName (for businesses) or firstName + lastName (for individuals)
    • Optional: email, phone, isPerson (set to "T" for individuals), comments
  • replace -- Comma-separated sublist names to fully replace (e.g., "contacts,addressbook")

Example:

Tool: NETSUITE_CREATE_CUSTOMER
Arguments:
  body: {
    "companyName": "Acme Corp",
    "subsidiary": {"id": "1"},
    "email": "info@acme.com",
    "phone": "555-0100"
  }

4. Upsert Records by External ID

Create or update records idempotently using an external identifier. Essential for sync workflows.

Tool: NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID

Key Parameters:

  • record_type (required) -- Record type name, e.g., "customer", "salesorder", "customrecord_myrec"
  • external_id (required) -- External ID value (letters, numbers, underscore, hyphen only)
  • body (required) -- JSON object matching the record schema; include mandatory fields when creating

Example:

Tool: NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID
Arguments:
  record_type: "customer"
  external_id: "CRM-CUST-42"
  body: {
    "companyName": "Acme Corp",
    "subsidiary": {"id": "1"},
    "email": "updated@acme.com"
  }

Warning: Idempotency depends on consistent external ID usage. Mismatches silently create additional records instead of updating.


5. Inspect Record Metadata

Discover available fields, data types, constraints, and requirements before creating or updating records.

Tool: NETSUITE_GET_RECORD_METADATA

Key Parameters:

  • record_type (required) -- e.g., "customer", "salesorder", "invoice", "vendor", "employee", "item"
  • accept -- "application/schema+json" (default, JSON Schema) or "application/swagger+json" (OpenAPI 3.0)

Example:

Tool: NETSUITE_GET_RECORD_METADATA
Arguments:
  record_type: "salesorder"

6. List and Filter Records

Retrieve multiple records with optional filtering and pagination.

Tool: NETSUITE_LIST_RECORDS

Key Parameters:

  • recordType (required) -- e.g., "customer", "salesorder"
  • q -- Filter expression using N/query operators, e.g., "email START_WITH \"barbara\""
  • limit -- Max records per page (1--1000, default 1000)
  • offset -- Zero-based index (must be divisible by limit)

Supporting Tools:

  • NETSUITE_FILTER_RECORD_COLLECTION -- Alternative filtering (secondary to SuiteQL)
  • NETSUITE_GET_RECORD_SELECTED_FIELDS -- Retrieve specific fields only (reduced payload)

Recommended Execution Plan

  1. Inspect the record schema using NETSUITE_GET_RECORD_METADATA to discover required fields
  2. Search for existing records using NETSUITE_RUN_SUITEQL_QUERY to avoid duplicates
  3. Look up customer by email using SuiteQL; fetch details with NETSUITE_GET_CUSTOMER if found
  4. Create customer if needed using NETSUITE_CREATE_CUSTOMER (ensure subsidiary is set)
  5. Validate item internal IDs using NETSUITE_LIST_RECORDS or SuiteQL
  6. Create the sales order using NETSUITE_CREATE_SALES_ORDER with validated references
  7. Optionally upsert by external ID using NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID for sync workflows
  8. Verify results using NETSUITE_GET_RECORD_SELECTED_FIELDS to confirm pricing/totals

Known Pitfalls

Pitfall Detail
Invalid item IDs NETSUITE_CREATE_SALES_ORDER throws USER_ERROR when item internal ID is invalid. Pre-validate via NETSUITE_LIST_RECORDS or NETSUITE_RUN_SUITEQL_QUERY.
Missing required fields NETSUITE_CREATE_CUSTOMER returns 400 when required fields (e.g., subsidiary) are missing. Always inspect with NETSUITE_GET_RECORD_METADATA first.
SuiteQL field names Query differences by account can cause empty results. Confirm field names via NETSUITE_GET_RECORD_METADATA when results look wrong.
Filter expression limits NETSUITE_FILTER_RECORD_COLLECTION may fail if filter syntax is unsupported. Treat as secondary to SuiteQL.
External ID idempotency NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID depends on consistent external IDs. Mismatches silently create duplicates instead of updating.
SuiteTax line items Accounts with SuiteTax enabled require taxcode on every line item. Omitting it causes creation failures.

Quick Reference

Tool Slug Description
NETSUITE_CREATE_SALES_ORDER Create a new sales order with line items
NETSUITE_RUN_SUITEQL_QUERY Execute ad-hoc SuiteQL queries with paging
NETSUITE_CREATE_CUSTOMER Create a new customer record
NETSUITE_GET_CUSTOMER Retrieve a customer by internal ID
NETSUITE_UPDATE_CUSTOMER Update an existing customer (PATCH)
NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID Create or update a record by external ID
NETSUITE_GET_RECORD_METADATA Inspect record schema and field definitions
NETSUITE_LIST_RECORDS List records with filtering and pagination
NETSUITE_FILTER_RECORD_COLLECTION Alternative record filtering
NETSUITE_GET_RECORD_SELECTED_FIELDS Retrieve specific fields from a record

Powered by Composio