Salesforce API Integration Guide - Part 2
0:000:00
Approaches to convert it to an LLM+MCP (Model Context Protocol) system
Here are the main options and recommendations:
Conversion Options
1. Direct Form-to-API Mapping
Convert each form field to structured API parameters:
// MCP tool definition
{
name: "create_support_case",
description: "Create a support case in system",
inputSchema: {
type: "object",
properties: {
// Contact Information
contactName: { type: "string", description: "Contact person name" },
email: { type: "string", description: "Contact email address" },
phone: { type: "string", description: "Contact phone number" },
preferredContact: {
type: "string",
enum: ["None", "Email", "Phone"],
description: "Preferred contact method"
},
additionalEmail: { type: "string", description: "Additional contact email" },
// Case Details
subject: { type: "string", description: "Case subject line" },
supportProduct: { type: "string", description: "Product needing support" },
description: { type: "string", description: "Detailed issue description" },
operatingSystem: { type: "string", description: "Operating system" },
browser: { type: "string", description: "Internet browser" },
// Options
suppressEmails: { type: "boolean", default: false },
priority: { type: "string", enum: ["Low", "Medium", "High", "Critical"] },
attachments: { type: "array", items: { type: "string" } }
},
required: ["contactName", "email", "subject", "description"]
}
}
2. Natural Language Processing Approach
Let the LLM extract information from conversational input:
// MCP tool for intelligent case creation
{
name: "create_case_from_conversation",
description: "Create support case from natural language description",
inputSchema: {
type: "object",
properties: {
conversationText: {
type: "string",
description: "Natural language description of the issue and contact details"
},
userPreferences: {
type: "object",
properties: {
suppressEmails: { type: "boolean", default: false },
priority: { type: "string" },
preferredContact: { type: "string" }
}
}
}
}
}
3. Hybrid Interactive Approach
Combine structured data collection with conversational flow:
// Multi-step MCP implementation
const caseCreationTools = [
{
name: 'collect_contact_info',
description: 'Collect and validate contact information',
},
{
name: 'analyze_issue_description',
description: 'Process issue description and categorize',
},
{
name: 'suggest_product_category',
description: 'Suggest appropriate product/category based on description',
},
{
name: 'create_final_case',
description: 'Create the support case with all collected information',
},
];
Best Approach Recommendation
Recommended: Multi-Tool MCP Strategy
This approach breaks down the form into logical components and uses multiple MCP tools:
// 1. Contact Information Collection
async function collectContactInfo(userInput) {
// Extract name, email, phone from natural language
// Validate email format
// Determine preferred contact method
}
// 2. Issue Analysis and Categorization
async function analyzeIssue(description) {
// Use LLM to categorize the issue
// Suggest appropriate product/service
// Determine priority level
// Extract technical details (OS, browser, etc.)
}
// 3. Case Creation with Options
async function createSupportCase(caseData, options = {}) {
const {
suppressEmails = false,
autoAssign = true,
notifyManager = false,
attachments = [],
} = options;
// Map to API structure
const aCase = {
contact: {
name: caseData.contactName,
email: caseData.email,
phone: caseData.phone,
preferredContact: caseData.preferredContact,
},
case: {
subject: caseData.subject,
description: caseData.description,
product: caseData.supportProduct,
priority: caseData.priority,
operatingSystem: caseData.operatingSystem,
browser: caseData.browser,
},
options: {
suppressEmails,
autoAssign,
notifyManager,
},
};
// Call API
return await anAPI.createCase(aCase);
}
Usage Example:
// User input: "Hi, I'm John from Acme Corp. I'm having trouble with OneSite -
// the dashboard won't load in Chrome on Windows 10. My email is john@acme.com"
// LLM processes this and calls MCP tools:
const contactInfo = await collectContactInfo(userInput);
const issueAnalysis = await analyzeIssue(userInput);
const caseResult = await createSupportCase(
{
...contactInfo,
...issueAnalysis,
},
{
suppressEmails: false,
autoAssign: true,
},
);
Implementation Benefits
Advantages of This Approach:
- Natural Interaction - Users can describe issues conversationally
- Intelligent Extraction - LLM extracts structured data from unstructured input
- Flexible Options - Support for advanced case creation options
- Validation - Built-in validation and error handling
- Extensible - Easy to add new fields or options
Additional Features to Consider:
- Attachment Handling - File upload and processing
- Case Templates - Pre-defined templates for common issues
- Follow-up Automation - Automatic status updates and notifications
- Integration Points - Connect with existing ticketing systems
- Analytics - Track case creation patterns and success rates
This approach transforms the static form into an intelligent, conversational interface while maintaining all the functionality and options of the original system.