Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer peopleโ€™s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer peopleโ€™s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The NetSuite Pro

The NetSuite Pro Logo The NetSuite Pro Logo

The NetSuite Pro Navigation

  • Home
  • About Us
  • Tutorials
    • NetSuite Scripting
    • NetSuite Customization
    • NetSuite Integration
    • NetSuite Advanced PDF Templates
    • NetSuite Reporting & Analytics Guide
    • Real-World NetSuite Examples
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask A Question
  • Home
  • About Us
  • Tutorials
    • NetSuite Scripting
    • NetSuite Customization
    • NetSuite Integration
    • NetSuite Advanced PDF Templates
    • NetSuite Reporting & Analytics Guide
    • Real-World NetSuite Examples
  • Blog
  • Contact Us
Home/ NetSuite Customization Guide: Fields, Forms, Workflows & Scripts/Integration Logging & Monitoring Dashboard in NetSuite (Custom Record Tracking)

Integration Logging & Monitoring Dashboard in NetSuite (Custom Record Tracking)

๐Ÿงฉ Integration Logging & Monitoring Dashboard in NetSuite

Introduction

Integrations are the heartbeat of a connected ERP ecosystem โ€” connecting NetSuite with Shopify, Salesforce, 3PLs, or internal systems.
But when data fails or records go missing, you need visibility โ€” and thatโ€™s where a custom logging and monitoring dashboard comes in.

This tutorial will show you how to build a fully auditable, real-time integration log using custom records, saved searches, and SuiteAnalytics workbooks.

Youโ€™ll also learn to capture API errors, record payloads, and set up alerts โ€” so you can monitor and debug integrations directly within NetSuite.


๐Ÿ’ก Why Create a Logging Dashboard?

BenefitDescription
Central VisibilityView all incoming/outgoing integrations from one page
Audit TrailTrack each API call with timestamps and status
Error ManagementIdentify failed calls and retry them
Performance MetricsAnalyze latency, response time, and frequency
ComplianceMaintain integration records for audit or IT governance

๐Ÿงฑ Step 1: Create Custom Record for Logging

Name: Integration Log
ID: customrecord_integration_log

Field LabelIDTypeDescription
Integration Sourcecustrecord_integration_sourceList/Texte.g., Boomi, Celigo, RESTlet
Record Typecustrecord_record_typeList/Texte.g., Sales Order, Customer
External IDcustrecord_external_idTextSource system record ID
Request Payloadcustrecord_request_payloadLong TextJSON/XML request
Response Messagecustrecord_response_msgLong TextAPI response
Statuscustrecord_statusList (Success, Failed, Warning)Status of transaction
Timestampcustrecord_timestampDate/TimeAuto-generated
Duration (ms)custrecord_durationIntegerAPI response time
Retry Countcustrecord_retry_countIntegerOptional tracking

โœ… Permissions:
Grant โ€œFullโ€ access to Integrations Admin / Developer roles only.


โš™๏ธ Step 2: Log Data via RESTlet or Script

Example RESTlet to log integration results:

/**
 * @NApiVersion 2.1
 * @NScriptType Restlet
 */
define(['N/record', 'N/log', 'N/runtime'], (record, log, runtime) => {

    const post = (request) => {
        const start = new Date();
        let status = 'Success', message = '', nsRecordId = null;

        try {
            // Sample: Create a Customer
            const rec = record.create({ type: 'customer' });
            rec.setValue('companyname', request.companyname);
            nsRecordId = rec.save();
            message = 'Record created successfully';
        } catch (e) {
            status = 'Failed';
            message = e.message;
        }

        // Log integration details
        record.create({ type: 'customrecord_integration_log', isDynamic: true })
            .setValue('custrecord_integration_source', 'Boomi')
            .setValue('custrecord_record_type', 'Customer')
            .setValue('custrecord_external_id', request.externalId || '')
            .setValue('custrecord_request_payload', JSON.stringify(request))
            .setValue('custrecord_response_msg', message)
            .setValue('custrecord_status', status)
            .setValue('custrecord_timestamp', new Date())
            .setValue('custrecord_duration', new Date() - start)
            .save();

        return { status, message, nsRecordId };
    };

    return { post };
});

โœ… Result:
Every API call is logged with payload, result, and performance data โ€” all visible in NetSuite.


๐Ÿงฎ Step 3: Create Saved Search for Monitoring

Saved Search: Integration Log โ€“ Daily Summary

ColumnFormula / FieldPurpose
Sourcecustrecord_integration_sourceIdentify integration type
Success CountCOUNT(CASE WHEN {custrecord_status}='Success' THEN 1 END)Daily success
Failure CountCOUNT(CASE WHEN {custrecord_status}='Failed' THEN 1 END)Daily errors
Average DurationAVG({custrecord_duration})Performance indicator
Last Run TimeMAX({custrecord_timestamp})Latest call

Filter: custrecord_timestamp within this week

Add Highlighting Rules:

  • Red for Failed
  • Yellow for Warning
  • Green for Success

๐Ÿ“Š Step 4: Build a SuiteAnalytics Workbook Dashboard

Create Workbook โ†’ Base Dataset: Integration Log

Recommended Views:

  • Chart 1: Success vs Failed (Bar Chart by Source)
  • Chart 2: Average API Duration (Line Graph by Date)
  • Pivot Table: Count of integrations per Record Type and Source

๐Ÿ’ก Bonus Tip: Add this workbook to the Home Dashboard as a portlet for real-time visibility.


๐Ÿ”„ Step 5: Add Auto-Alert Notifications

Option 1 โ€” Workflow Alert

Create a Workflow on the Integration Log record:

  • Trigger: On Create
  • Condition: Status = Failed
  • Action: Send Email to Developer/Admin
  • Subject: โ€œIntegration Error โ€“ ${custrecord_integration_source}โ€

Option 2 โ€” Scheduled Script Summary

Run daily summary report and email it to your Integration Team:

email.send({
  author: 1234,
  recipients: ['integration@company.com'],
  subject: 'Daily Integration Summary',
  body: 'Todayโ€™s failed transactions: 3\nPlease review the Integration Log in NetSuite.'
});

๐Ÿง  Step 6: Real-World Dashboards

Dashboard TypeExample Metrics
Boomi Integration DashboardSuccess Rate %, Average Duration, Failed API Count
Shopify Integration MonitorOrders Imported vs Errors
3PL DashboardShipment Updates, Label Generation Failures
Salesforce Sync LogLead Push, Opportunity Updates
RESTlet API SummaryTotal Calls, Status Breakdown, Retry Trend

Add these dashboards as Home Portlets for Admin or IT Operations roles.


๐Ÿงฉ Advanced Features (Optional)

FeatureDescription
Retry ButtonAdd workflow button to reprocess failed entries via Suitelet.
Payload ArchivingSave large JSON payloads to File Cabinet instead of record field.
Integration ID LinkingAdd field custrecord_related_transaction for traceability.
Governance TrackingLog script usage units for each API call.
External AlertsSend Slack/Teams notifications for failures via webhook.

๐Ÿ” Security & Performance Best Practices

โœ… Limit record visibility to Admin & Developer roles.
โœ… Truncate old logs (>90 days) via scheduled script.
โœ… Avoid storing sensitive credentials in payload fields.
โœ… Use N/cache to reduce API lookup time.
โœ… Compress JSON payloads using JSON.stringify(obj, null, 0) for efficiency.


โšก Common Issues & Fixes

IssueRoot CauseSolution
Missing logsScript didnโ€™t save recordVerify record.create() logic
High storage usageLarge payloadsSave payloads to File Cabinet
Duplicate entriesRetry logic not trackedAdd externalId uniqueness check
No alertsWorkflow condition mismatchVerify โ€œFailedโ€ status condition

๐Ÿ“š Related Tutorials

  • ๐Ÿ‘‰ SuiteScript Security & Governance Best Practices
  • ๐Ÿ‘‰ Custom GL Plug-in for Audit Compliance
  • ๐Ÿ‘‰ SuiteAnalytics Workbook for Dashboards

โ“ FAQ

Q1. Can this log be used for Boomi or Celigo integrations?
Yes โ€” simply send API responses into this RESTlet from your middleware.

Q2. Can I link integration logs to original transactions?
Yes โ€” add a field custrecord_related_transaction to link to Sales Orders or Invoices.

Q3. Can I visualize this data externally?
Yes โ€” use SuiteAnalytics or export via Saved Search API to Power BI or Tableau.

Q4. Can I auto-delete old logs?
Yes โ€” use a Scheduled Script or Workflow to purge records older than 90 days.


๐Ÿงญ Summary

The Integration Logging & Monitoring Dashboard transforms NetSuite into a central integration control center.
By tracking every API call, logging payloads and outcomes, and visualizing success/failure trends, you gain full transparency and control across all external systems โ€” Shopify, Salesforce, Boomi, 3PLs, and more.

This setup is essential for modern ERP teams that value visibility, accountability, and proactive troubleshooting.

Share
  • Facebook

Leave a ReplyCancel reply

Sidebar

Ask A Question

Stats

  • Questions 6
  • Answers 6
  • Best Answers 0
  • Users 2
  • Popular
  • Answers
  • Rocky

    Issue in running a client script in NetSuite SuiteScript 2.0 ...

    • 1 Answer
  • admin

    How can I send an email with an attachment in ...

    • 1 Answer
  • admin

    How do I avoid SSS_USAGE_LIMIT_EXCEEDED in a Map/Reduce script?

    • 1 Answer
  • admin
    admin added an answer The issue is usually caused by following Wrong script file… September 14, 2025 at 10:33 pm
  • admin
    admin added an answer Steps to send an Invoice PDF by email: define(['N/email', 'N/render',… August 28, 2025 at 3:05 am
  • admin
    admin added an answer This error means your script hit NetSuiteโ€™s governance usage limit… August 28, 2025 at 3:02 am

Top Members

Rocky

Rocky

  • 1 Question
  • 22 Points
Begginer
admin

admin

  • 5 Questions
  • 2 Points

Trending Tags

clientscript netsuite scripting suitescript

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help

Footer

© 2025 The NetSuite Pro. All Rights Reserved