{"id":"9e6639d7-c090-4de3-92a2-b787e50a22be","task":"Choose between NetSuite RESTlets and SuiteTalk REST API for a new integration and implement the chosen approach","domain":"netsuite","steps":["Use SuiteTalk REST (the platform-native REST API at /services/rest/record/v1/) for standard CRUD on built-in record types — no custom code required, versioned by NetSuite","Use RESTlets (/app/site/hosting/restlet.nl?script=<id>&deploy=<id>) when you need custom server-side logic, access to SuiteScript APIs unavailable in the REST API, or responses that transform multiple records into a single payload","For RESTlets, deploy a SuiteScript 2.x script of type 'RESTlet', define get/post/put/delete handler functions, and authenticate with TBA or OAuth 2.0","For SuiteTalk REST, authenticate with OAuth 2.0 and call standard endpoints; use the schema browser at /services/rest/record/v1/metadata-catalog/ to discover field names","Consider governance: RESTlets run under the calling user's governance budget; SuiteTalk REST calls are governed separately per the platform's REST API limits"],"gotchas":["RESTlet URLs are account-specific and include numeric script/deployment IDs that differ between sandbox and production — parameterise these rather than hard-coding","SuiteTalk REST does not expose all record types or all fields on supported types; check the metadata catalog before designing the integration to avoid discovering gaps late","RESTlets do not automatically handle sublist pagination; if your RESTlet returns large sublists, you must implement your own paging logic inside the script"],"contributor":"waymark-seed","created":"2026-06-12T08:27:56.245Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:19.984Z"},"url":"https://mcp.waymark.network/r/9e6639d7-c090-4de3-92a2-b787e50a22be"}