Skip to main content

NetSuite CRM MCP Server

Create a powerful Model Context Protocol (MCP) server for NetSuite CRM in minutes with our AI Gateway. This guide walks you through setting up seamless customer relationship management integration with sales automation and instant OAuth authentication.

About NetSuite CRM API

NetSuite CRM provides a complete view of customers throughout their lifecycle, from lead to order to renewal. It delivers powerful sales force automation, marketing automation, and customer service management capabilities integrated with NetSuite's ERP functionality.

Key Capabilities

  • Lead Management: Lead capture, scoring, and nurturing
  • Contact Management: 360-degree customer view
  • Opportunity Management: Sales pipeline tracking
  • Quote Management: CPQ capabilities
  • Marketing Automation: Campaign management
  • Customer Service: Case and issue tracking
  • Partner Management: Channel relationships
  • Sales Analytics: Forecasting and reporting

API Features

  • RESTlet API: Custom endpoints
  • SOAP Web Services: Full CRM access
  • SuiteScript: Customization
  • OAuth 2.0: Secure authentication
  • Real-time Sync: Data synchronization
  • Bulk Operations: Mass updates
  • Custom Fields: Extensible model
  • Webhook Events: Real-time triggers

What You Can Do with NetSuite CRM MCP Server

The MCP server transforms NetSuite CRM API into a natural language interface, enabling AI agents to:

Lead Management

  • Lead Capture

    • "Create lead from web form"
    • "Import leads from CSV"
    • "Capture event leads"
    • "Parse email inquiries"
  • Lead Qualification

    • "Score leads by criteria"
    • "Qualify marketing leads"
    • "Route to sales reps"
    • "Update lead status"
  • Lead Nurturing

    • "Assign to campaigns"
    • "Schedule follow-ups"
    • "Track engagement"
    • "Convert to opportunities"

Contact Management

  • Customer Profiles

    • "Create new contact"
    • "Update contact details"
    • "Link to companies"
    • "Track interactions"
  • Relationship Mapping

    • "Map org hierarchies"
    • "Identify influencers"
    • "Track relationships"
    • "Manage stakeholders"
  • Communication History

    • "Log calls and emails"
    • "Record meetings"
    • "Track touchpoints"
    • "View timeline"

Opportunity Management

  • Pipeline Management

    • "Create opportunities"
    • "Update deal stages"
    • "Track probability"
    • "Forecast revenue"
  • Sales Process

    • "Follow sales methodology"
    • "Complete stage gates"
    • "Track activities"
    • "Monitor velocity"
  • Team Collaboration

    • "Assign team members"
    • "Share updates"
    • "Track contributions"
    • "Coordinate efforts"

Quote & Proposal Management

  • Quote Creation

    • "Generate quotes"
    • "Configure products"
    • "Apply pricing rules"
    • "Add discounts"
  • Approval Workflow

    • "Submit for approval"
    • "Track approval status"
    • "Manage versions"
    • "Handle rejections"
  • Document Generation

    • "Create proposals"
    • "Generate contracts"
    • "Export to PDF"
    • "Send to customers"

Marketing Automation

  • Campaign Management

    • "Create campaigns"
    • "Define target lists"
    • "Schedule execution"
    • "Track responses"
  • Email Marketing

    • "Design templates"
    • "Send bulk emails"
    • "Track opens/clicks"
    • "Manage unsubscribes"
  • Lead Scoring

    • "Define scoring rules"
    • "Track behaviors"
    • "Update scores"
    • "Trigger actions"

Customer Service

  • Case Management

    • "Create support cases"
    • "Assign to agents"
    • "Track resolution"
    • "Monitor SLAs"
  • Issue Tracking

    • "Log customer issues"
    • "Categorize problems"
    • "Track escalations"
    • "Measure satisfaction"
  • Knowledge Base

    • "Create articles"
    • "Link to cases"
    • "Track usage"
    • "Update content"

Sales Analytics

  • Pipeline Analytics

    • "View pipeline health"
    • "Track conversion rates"
    • "Analyze win/loss"
    • "Monitor velocity"
  • Forecasting

    • "Generate forecasts"
    • "Track actuals"
    • "Analyze variance"
    • "Project revenue"
  • Performance Metrics

    • "Rep performance"
    • "Team metrics"
    • "Activity tracking"
    • "Goal attainment"

Partner Management

  • Partner Profiles

    • "Onboard partners"
    • "Track certifications"
    • "Manage territories"
    • "Monitor performance"
  • Deal Registration

    • "Register opportunities"
    • "Prevent conflicts"
    • "Track protection"
    • "Manage approvals"
  • Partner Portal

    • "Share resources"
    • "Provide training"
    • "Track engagement"
    • "Measure success"

Prerequisites

  • Access to Cequence AI Gateway
  • NetSuite account with CRM module
  • API access enabled
  • Required permissions

Step 1: Configure NetSuite CRM Access

1.1 Enable CRM Features

  1. Go to Setup > Company > Enable Features
  2. Under CRM tab, enable:
    • Customer Relationship Management
    • Marketing Automation
    • Sales Force Automation
    • Customer Support

1.2 Create Integration

  1. Navigate to Setup > Integration > Manage Integrations
  2. Create new integration:
    • Name: "AI Gateway CRM Integration"
    • OAuth 2.0: Enabled
    • RESTlets: Enabled

1.3 Set Permissions

Select permissions:

  • Customers: Full
  • Contacts: Full
  • Opportunities: Full
  • Marketing: Full
  • Support: Full

1.4 Save Credentials

Note:

  • Client ID
  • Client Secret
  • Account ID

Step 2-4: Standard Setup

Follow standard steps to access AI Gateway, find NetSuite CRM API, and create MCP server.

Step 5: Configure API Endpoints

  1. Base URL: https://{accountId}.suitetalk.api.netsuite.com
  2. Select endpoints:
    • Customer endpoints
    • Contact endpoints
    • Opportunity endpoints
    • Campaign endpoints
  3. Click Next

Step 6: MCP Server Configuration

  1. Name: "NetSuite CRM"
  2. Description: "Customer relationship management"
  3. Configure production mode
  4. Click Next

Step 7: Configure Authentication

  1. Authentication Type: OAuth 2.0
  2. Configure OAuth URLs with account ID
  3. Enter Client ID and Secret
  4. Set token refresh

Available NetSuite CRM API Scopes

Sales Management

  • Lead & Contact

    • Lead management
    • Contact records
    • Activity tracking
    • Communication logs
  • Opportunity & Quote

    • Opportunity management
    • Quote generation
    • Pricing configuration
    • Approval workflows

Marketing

  • Campaign Management

    • Campaign creation
    • List management
    • Email marketing
    • Response tracking
  • Marketing Automation

    • Lead scoring
    • Nurture programs
    • Behavior tracking
    • Segmentation

Customer Service

  • Case Management

    • Case creation
    • Assignment rules
    • Escalation paths
    • Resolution tracking
  • Knowledge Management

    • Article creation
    • Category management
    • Search functionality
    • Usage analytics

For Sales Teams:

Leads & Contacts (Full)
Opportunities (Full)
Quotes (Full)
Activities (Full)
Reports (Read)

For Marketing Teams:

Leads (Full)
Campaigns (Full)
Email Marketing (Full)
Lists (Full)
Analytics (Read)

Step 8-10: Complete Setup

Configure security, choose deployment, and deploy.

Using Your NetSuite CRM MCP Server

With Claude Desktop

{
"servers": {
"netsuite-crm": {
"url": "your-mcp-server-url",
"auth": {
"type": "oauth2",
"client_id": "your-client-id",
"client_secret": "your-client-secret",
"account_id": "your-account-id"
}
}
}
}

Natural Language Commands

  • "Create a new lead from the trade show"
  • "Show me all opportunities closing this quarter"
  • "Update the forecast for the Enterprise team"
  • "Generate a quote for ABC Company"
  • "Find all contacts at tech companies in California"

API Integration Example

// Initialize MCP client
const mcpClient = new MCPClient({
serverUrl: 'your-mcp-server-url',
auth: {
type: 'oauth2',
clientId: 'your-client-id',
clientSecret: 'your-client-secret',
accountId: 'your-account-id'
}
});

// Lead management
const lead = await mcpClient.netsuite.crm.createLead({
companyName: 'Tech Innovations Inc',
firstName: 'John',
lastName: 'Smith',
email: 'john.smith@techinnovations.com',
phone: '555-123-4567',
leadSource: 'Trade Show',
status: 'New',
estimatedRevenue: 150000,
industry: 'Technology',
numberOfEmployees: 500
});

console.log(`Created lead: ${lead.id}`);

// Lead scoring
const leadScore = await mcpClient.netsuite.crm.scoreLead({
leadId: lead.id,
criteria: {
companySize: { weight: 20, value: lead.numberOfEmployees },
industry: { weight: 15, value: lead.industry },
budget: { weight: 25, value: lead.estimatedRevenue },
engagement: { weight: 40, value: 'high' }
}
});

console.log(`Lead Score: ${leadScore.totalScore}/100`);
console.log(`Grade: ${leadScore.grade}`);

if (leadScore.totalScore >= 70) {
// Convert to opportunity
const opportunity = await mcpClient.netsuite.crm.convertLeadToOpportunity({
leadId: lead.id,
opportunityName: `${lead.companyName} - Initial Deal`,
estimatedCloseDate: new Date(Date.now() + 90 * 24 * 60 * 60 * 1000),
probability: 25,
salesRep: 'john.doe@company.com'
});

console.log(`Created opportunity: ${opportunity.tranId}`);
}

// Opportunity management
const opportunities = await mcpClient.netsuite.crm.getOpportunities({
filters: {
status: ['In Progress', 'Negotiation'],
closeDate: {
operator: 'within',
value: 'currentQuarter'
}
},
columns: ['tranId', 'title', 'amount', 'probability', 'closeDate', 'salesRep']
});

console.log(`\nQ${getCurrentQuarter()} Pipeline:`);
let totalPipeline = 0;
let weightedPipeline = 0;

for (const opp of opportunities) {
console.log(`${opp.tranId}: ${opp.title}`);
console.log(` Amount: $${opp.amount.toLocaleString()}`);
console.log(` Probability: ${opp.probability}%`);
console.log(` Close Date: ${opp.closeDate}`);

totalPipeline += opp.amount;
weightedPipeline += opp.amount * (opp.probability / 100);
}

console.log(`\nTotal Pipeline: $${totalPipeline.toLocaleString()}`);
console.log(`Weighted Pipeline: $${weightedPipeline.toLocaleString()}`);

// Quote generation
const quote = await mcpClient.netsuite.crm.createQuote({
customer: opportunity.entity,
opportunity: opportunity.id,
tranDate: new Date(),
validUntil: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000),
items: [
{
item: 'SOFTWARE-LICENSE',
quantity: 10,
rate: 1000,
description: 'Enterprise Software License'
},
{
item: 'SUPPORT-ANNUAL',
quantity: 10,
rate: 200,
description: 'Annual Support & Maintenance'
}
],
discountItem: 'VOLUME-DISCOUNT',
discountRate: -10 // 10% discount
});

// Campaign management
const campaign = await mcpClient.netsuite.crm.createCampaign({
title: 'Q1 Product Launch',
category: 'Email',
startDate: new Date(),
endDate: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000),
budget: 50000,
targetResponse: 5,
audience: {
savedSearch: 'customsearch_qualified_leads',
filters: {
industry: ['Technology', 'Finance'],
score: { min: 60 }
}
}
});

// Send campaign email
const emailResult = await mcpClient.netsuite.crm.sendCampaignEmail({
campaignId: campaign.id,
template: 'PRODUCT_LAUNCH_TEMPLATE',
subject: 'Introducing Our Latest Innovation',
trackOpens: true,
trackClicks: true,
schedule: {
sendTime: '09:00',
timezone: 'recipientLocal'
}
});

console.log(`Campaign sent to ${emailResult.recipientCount} contacts`);

// Customer service case
const supportCase = await mcpClient.netsuite.crm.createCase({
title: 'Login Issue - Cannot Access Dashboard',
customer: 12345,
contact: 67890,
priority: 'High',
category: 'Technical Support',
subcategory: 'Access Issues',
description: 'Customer reports being unable to log into the dashboard...',
assignedTo: 'support-queue',
sla: 'premium-support'
});

// Track case resolution
const caseUpdate = await mcpClient.netsuite.crm.updateCase({
caseId: supportCase.id,
status: 'In Progress',
internalNotes: 'Investigating authentication service logs',
customerVisible: false,
timeSpent: 30 // minutes
});

// Sales analytics
const salesMetrics = await mcpClient.netsuite.crm.getSalesAnalytics({
period: 'currentQuarter',
metrics: [
'newOpportunities',
'closedWon',
'closedLost',
'averageDealSize',
'winRate',
'salesCycle'
],
groupBy: ['salesRep', 'productLine', 'region']
});

console.log('\nSales Performance Metrics:');
console.log(`New Opportunities: ${salesMetrics.newOpportunities}`);
console.log(`Closed Won: ${salesMetrics.closedWon}`);
console.log(`Win Rate: ${salesMetrics.winRate}%`);
console.log(`Avg Deal Size: $${salesMetrics.averageDealSize.toLocaleString()}`);
console.log(`Avg Sales Cycle: ${salesMetrics.salesCycle} days`);

// Partner portal
const partner = await mcpClient.netsuite.crm.createPartner({
companyName: 'Channel Partner Corp',
type: 'Reseller',
tier: 'Gold',
territory: ['North America', 'EMEA'],
certifications: ['Sales Professional', 'Technical Expert'],
contractStart: new Date(),
contractEnd: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000)
});

// Deal registration
const dealReg = await mcpClient.netsuite.crm.registerDeal({
partner: partner.id,
customerName: 'Enterprise Customer LLC',
estimatedValue: 500000,
products: ['Enterprise Suite', 'Professional Services'],
competitiveInfo: 'Competing against Vendor X',
closeDate: new Date(Date.now() + 120 * 24 * 60 * 60 * 1000)
});

// Marketing automation
const leadNurture = await mcpClient.netsuite.crm.createNurtureProgram({
name: 'Enterprise Lead Nurture',
targetAudience: {
leadScore: { min: 40, max: 69 },
industry: ['Technology', 'Finance', 'Healthcare']
},
workflow: [
{
step: 1,
action: 'email',
template: 'WELCOME_SERIES_1',
delay: 0
},
{
step: 2,
action: 'email',
template: 'EDUCATIONAL_CONTENT',
delay: 7,
condition: 'opened_previous'
},
{
step: 3,
action: 'task',
assignTo: 'sales_rep',
task: 'Personal outreach call',
delay: 14,
condition: 'clicked_link'
}
]
});

// Real-time monitoring
const crmMonitor = await mcpClient.netsuite.crm.startMonitoring({
events: [
'leadCreated',
'opportunityStageChange',
'dealClosed',
'caseEscalated'
],
filters: {
value: { min: 50000 },
priority: ['high', 'urgent']
}
});

crmMonitor.on('event', async (event) => {
console.log(`CRM Event: ${event.type}`);
console.log(`Details: ${JSON.stringify(event.data)}`);

if (event.type === 'dealClosed' && event.data.status === 'won') {
await celebrateWin(event.data);
}
});

Common Use Cases

Sales Automation

  • Lead qualification and routing
  • Opportunity management
  • Quote generation
  • Sales forecasting

Marketing Operations

  • Campaign execution
  • Lead nurturing
  • Email marketing
  • ROI tracking

Customer Service

  • Case management
  • SLA monitoring
  • Knowledge base
  • Customer satisfaction

Partner Management

  • Channel enablement
  • Deal registration
  • Partner portals
  • Co-marketing

Security Best Practices

  1. Data Access:

    • Role-based permissions
    • Field-level security
    • Record-level access
    • IP restrictions
  2. Integration Security:

    • OAuth 2.0 only
    • Token encryption
    • API rate limiting
    • Audit logging
  3. Compliance:

    • GDPR compliance
    • Data retention
    • Consent management
    • Privacy controls

Troubleshooting

Common Issues

  1. Search Performance

    • Optimize saved searches
    • Use search filters
    • Limit result sets
    • Index custom fields
  2. Data Sync

    • Check field mappings
    • Verify data types
    • Handle duplicates
    • Monitor sync logs
  3. Workflow Issues

    • Test in sandbox
    • Check conditions
    • Verify permissions
    • Review dependencies

Getting Help