ComposioHQ/NetSuite-Automation

Automação NetSuite: gerencie clientes, pedidos de venda, faturas, inventário e registros via Oracle NetSuite ERP com consultas SuiteQL.

O que é NetSuite-Automation?

Esta skill capacita agentes de IA a automatizar operações no Oracle NetSuite ERP, cobrindo desde criação de clientes e pedidos de venda até consultas ad-hoc SuiteQL e upsert de registros por ID externo. Útil para equipes de TI e desenvolvedores que precisam integrar fluxos de negócio (sincronização de dados, gerenciamento de inventário, faturamento) com o NetSuite, eliminando tarefas manuais repetitivas e reduzindo erros. A skill é suportada por qualquer plataforma de agentes (Claude Code, Cursor, Codex) que se conecte ao servidor MCP Rube (https://rube.app/mcp). Funciona expondo ferramentas como `NETSUITE_CREATE_SALES_ORDER`, `NETSUITE_RUN_SUITEQL_QUERY`, `NETSUITE_CREATE_CUSTOMER`, `NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID` e `NETSUITE_GET_RECORD_METADATA`, permitindo que o agente liste, inspecione e manipule registros de forma programática. O plano de execução recomendado orienta o agente a primeiro inspecionar esquemas, pesquisar registros existentes, validar IDs internos e só então criar ou atualizar registros, evitando erros comuns como campos obrigatórios ausentes ou IDs de item inválidos. A skill também inclui uma tabela de armadilhas conhecidas (pitfalls) e uma referência rápida de todas as ferramentas disponíveis, tornando a implementação mais segura e eficiente para desenvolvedores.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ComposioHQ/awesome-codex-skills/tree/main/composio-skills/netsuite-automation

Installed? Explore more Produtividade e Colaboração skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Automação NetSuite

Automatize operações do Oracle NetSuite ERP, incluindo criação de clientes e pedidos de venda, execução de consultas SuiteQL, upsert de registros por ID externo e inspeção de metadados de registros para gerenciamento empresarial abrangente.

Documentação do toolkit: composio.dev/toolkits/netsuite


Configuração

Esta skill requer o servidor MCP Rube conectado em https://rube.app/mcp.

Antes de executar qualquer ferramenta, certifique-se de que existe uma conexão ativa para o toolkit netsuite. Se nenhuma conexão estiver ativa, inicie uma via RUBE_MANAGE_CONNECTIONS.


Fluxos de Trabalho Principais

1. Criar Pedidos de Venda

Crie pedidos de clientes com itens de linha incluindo referências de itens, quantidades e preços.

Ferramenta: NETSUITE_CREATE_SALES_ORDER

Parâmetros Principais:

  • entity (obrigatório) -- Referência do cliente: {"id": "<id_interno>"}
  • item (obrigatório) -- Contêiner com array items, cada um contendo:
    • item (obrigatório) -- Referência do item: {"id": "<id_interno>"}
    • quantity (obrigatório) -- Unidades a pedir (não negativo)
    • rate -- Preço unitário (opcional se o item tiver preço padrão)
    • amount -- Valor total da linha (alternativa ao rate)
    • taxcode -- Referência do código de imposto: {"id": "<id_interno>"} (obrigatório se SuiteTax estiver ativado)
    • description -- Anotações do item de linha
  • tranDate -- Data da transação no formato AAAA-MM-DD
  • memo -- Memorando do cabeçalho
  • orderStatus -- "A" (Aguardando Aprovação) ou "B" (Aguardando Atendimento)
  • otherrefnum -- Referência externa ou número do pedido de compra

Exemplo:

Ferramenta: NETSUITE_CREATE_SALES_ORDER
Argumentos:
  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: "Pedido em lote Q1"
  orderStatus: "B"

2. Executar Consultas SuiteQL

Execute consultas SQL ad-hoc contra dados do NetSuite com paginação no servidor.

Ferramenta: NETSUITE_RUN_SUITEQL_QUERY

Parâmetros Principais:

  • q (obrigatório) -- Instrução SELECT SuiteQL
  • limit -- Linhas por página (padrão varia)
  • offset -- Índice baseado em zero da primeira linha (deve ser múltiplo de limit)

Exemplos:

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

3. Criar e Gerenciar Clientes

Crie novos registros de cliente com atribuição de subsidiária e detalhes de contato.

Ferramentas:

  • NETSUITE_CREATE_CUSTOMER -- Criar um novo cliente
  • NETSUITE_GET_CUSTOMER -- Recuperar cliente por ID interno
  • NETSUITE_UPDATE_CUSTOMER -- Atualizar cliente existente (semântica PATCH)

Parâmetros Principais para NETSUITE_CREATE_CUSTOMER:

  • body (obrigatório) -- Objeto JSON com dados do cliente. Campos obrigatórios:
    • subsidiary -- Objeto com id (ID interno da subsidiária)
    • companyName (para empresas) ou firstName + lastName (para pessoas físicas)
    • Opcionais: email, phone, isPerson (definir como "T" para pessoas físicas), comments
  • replace -- Nomes de sublistas separados por vírgula para substituir completamente (ex.: "contacts,addressbook")

Exemplo:

Ferramenta: NETSUITE_CREATE_CUSTOMER
Argumentos:
  body: {
    "companyName": "Acme Corp",
    "subsidiary": {"id": "1"},
    "email": "[email protected]",
    "phone": "555-0100"
  }

4. Upsert de Registros por ID Externo

Crie ou atualize registros de forma idempotente usando um identificador externo. Essencial para fluxos de sincronização.

Ferramenta: NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID

Parâmetros Principais:

  • record_type (obrigatório) -- Nome do tipo de registro, ex.: "customer", "salesorder", "customrecord_myrec"
  • external_id (obrigatório) -- Valor do ID externo (apenas letras, números, sublinhado, hífen)
  • body (obrigatório) -- Objeto JSON correspondente ao esquema do registro; inclua campos obrigatórios ao criar

Exemplo:

Ferramenta: NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID
Argumentos:
  record_type: "customer"
  external_id: "CRM-CUST-42"
  body: {
    "companyName": "Acme Corp",
    "subsidiary": {"id": "1"},
    "email": "[email protected]"
  }

Aviso: A idempotência depende do uso consistente do ID externo. Inconsistências criam registros adicionais silenciosamente em vez de atualizar.


5. Inspecionar Metadados de Registro

Descubra campos disponíveis, tipos de dados, restrições e requisitos antes de criar ou atualizar registros.

Ferramenta: NETSUITE_GET_RECORD_METADATA

Parâmetros Principais:

  • record_type (obrigatório) -- ex.: "customer", "salesorder", "invoice", "vendor", "employee", "item"
  • accept -- "application/schema+json" (padrão, JSON Schema) ou "application/swagger+json" (OpenAPI 3.0)

Exemplo:

Ferramenta: NETSUITE_GET_RECORD_METADATA
Argumentos:
  record_type: "salesorder"

6. Listar e Filtrar Registros

Recupere múltiplos registros com filtros opcionais e paginação.

Ferramenta: NETSUITE_LIST_RECORDS

Parâmetros Principais:

  • recordType (obrigatório) -- ex.: "customer", "salesorder"
  • q -- Expressão de filtro usando operadores N/query, ex.: "email START_WITH \"barbara\""
  • limit -- Máx. registros por página (1--1000, padrão 1000)
  • offset -- Índice baseado em zero (deve ser divisível por limit)

Ferramentas de Apoio:

  • NETSUITE_FILTER_RECORD_COLLECTION -- Filtragem alternativa (secundária ao SuiteQL)
  • NETSUITE_GET_RECORD_SELECTED_FIELDS -- Recuperar apenas campos específicos (payload reduzido)

Plano de Execução Recomendado

  1. Inspecione o esquema do registro usando NETSUITE_GET_RECORD_METADATA para descobrir campos obrigatórios
  2. Pesquise registros existentes usando NETSUITE_RUN_SUITEQL_QUERY para evitar duplicatas
  3. Consulte cliente por e-mail usando SuiteQL; busque detalhes com NETSUITE_GET_CUSTOMER se encontrado
  4. Crie cliente se necessário usando NETSUITE_CREATE_CUSTOMER (certifique-se de definir subsidiary)
  5. Valide IDs internos de itens usando NETSUITE_LIST_RECORDS ou SuiteQL
  6. Crie o pedido de venda usando NETSUITE_CREATE_SALES_ORDER com referências validadas
  7. Opcionalmente, faça upsert por ID externo usando NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID para fluxos de sincronização
  8. Verifique os resultados usando NETSUITE_GET_RECORD_SELECTED_FIELDS para confirmar preços/totais

Armadilhas Conhecidas

ArmadilhaDetalhe
IDs de item inválidosNETSUITE_CREATE_SALES_ORDER lança USER_ERROR quando o ID interno do item é inválido. Pré-valide via NETSUITE_LIST_RECORDS ou NETSUITE_RUN_SUITEQL_QUERY.
Campos obrigatórios ausentesNETSUITE_CREATE_CUSTOMER retorna 400 quando campos obrigatórios (ex.: subsidiary) estão faltando. Sempre inspecione com NETSUITE_GET_RECORD_METADATA primeiro.
Nomes de campos SuiteQLDiferenças de consulta por conta podem causar resultados vazios. Confirme os nomes dos campos via NETSUITE_GET_RECORD_METADATA quando os resultados parecerem errados.
Limites de expressão de filtroNETSUITE_FILTER_RECORD_COLLECTION pode falhar se a sintaxe do filtro não for suportada. Trate como secundário ao SuiteQL.
Idempotência de ID externoNETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID depende de IDs externos consistentes. Inconsistências criam duplicatas silenciosamente em vez de atualizar.
Itens de linha com SuiteTaxContas com SuiteTax ativado exigem taxcode em cada item de linha. Omiti-lo causa falhas na criação.

Referência Rápida

Slug da FerramentaDescrição
NETSUITE_CREATE_SALES_ORDERCriar um novo pedido de venda com itens de linha
NETSUITE_RUN_SUITEQL_QUERYExecutar consultas SuiteQL ad-hoc com paginação
NETSUITE_CREATE_CUSTOMERCriar um novo registro de cliente
NETSUITE_GET_CUSTOMERRecuperar um cliente por ID interno
NETSUITE_UPDATE_CUSTOMERAtualizar um cliente existente (PATCH)
NETSUITE_UPSERT_RECORD_BY_EXTERNAL_IDCriar ou atualizar um registro por ID externo
NETSUITE_GET_RECORD_METADATAInspecionar esquema do registro e definições de campo
NETSUITE_LIST_RECORDSListar registros com filtragem e paginação
NETSUITE_FILTER_RECORD_COLLECTIONFiltragem alternativa de registros
NETSUITE_GET_RECORD_SELECTED_FIELDSRecuperar campos específicos de um registro

Fornecido por Composio

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

ComposioHQ/-21risk-automation

Automate 21risk tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/-2chat-automation

Automate 2chat tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/ably-automation

Automate Ably tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/abstract-automation

Automate Abstract tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/abuselpdb-automation

Automate Abuselpdb tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/abyssale-automation

Automate Abyssale tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/accelo-automation

Automate Accelo tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/accredible-certificates-automation

Automate Accredible Certificates tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/acculynx-automation

Automate Acculynx tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/active-campaign-automation

Automate ActiveCampaign tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/addresszen-automation

Automate Addresszen tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/adobe-automation

Automate Adobe tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/adrapid-automation

Automate Adrapid tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/adyntel-automation

Automate Adyntel tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/aeroleads-automation

Automate Aeroleads tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/aero-workflow-automation

Automate Aero Workflow tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/affinda-automation

Automate Affinda tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/affinity-automation

Automate Affinity tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/agencyzoom-automation

Automate Agencyzoom tasks via Rube MCP (Composio). Always search tools first for current schemas.

ComposioHQ/agent-deep-links

Build, validate, and troubleshoot deep links for Codex, Cursor, VS Code, Visual Studio, and similar tools. Use when users ask for clickable links (especially in Slack) that open threads, files, folders, or app settings.

Habilidades Relacionadas