salesforce-hello-world

Create a minimal working Salesforce example with SOQL queries and sObject CRUD. Use when starting a new Salesforce integration, testing your setup, or learning basic Salesforce API patterns. Trigger with phrases like "salesforce hello world", "salesforce example", "salesforce quick start", "first salesforce query", "salesforce SOQL".

Allowed Tools

ReadWriteEdit

Provided by Plugin

salesforce-pack

Claude Code skill pack for Salesforce (30 skills)

saas packs v1.7.0
View Plugin

Installation

This skill is included in the salesforce-pack plugin:

/plugin install salesforce-pack@claude-code-plugins-plus

Click to copy

Instructions

Salesforce Hello World

Overview

Minimal working example: connect to Salesforce, run a SOQL query, and perform basic CRUD on standard sObjects (Account, Contact, Lead).

Prerequisites

  • Completed salesforce-install-auth setup
  • jsforce installed (npm install jsforce)
  • Valid credentials in environment variables

Instructions

Step 1: Connect and Query Accounts


import jsforce from 'jsforce';

const conn = new jsforce.Connection({
  loginUrl: process.env.SF_LOGIN_URL || 'https://login.salesforce.com',
});

await conn.login(
  process.env.SF_USERNAME!,
  process.env.SF_PASSWORD! + process.env.SF_SECURITY_TOKEN!
);

// Your first SOQL query — fetch 5 Accounts
const result = await conn.query(
  "SELECT Id, Name, Industry, AnnualRevenue FROM Account LIMIT 5"
);

console.log(`Total records: ${result.totalSize}`);
for (const account of result.records) {
  console.log(`  ${account.Name} — ${account.Industry ?? 'N/A'}`);
}

Step 2: Create a Record


// Create a new Account
const newAccount = await conn.sobject('Account').create({
  Name: 'Acme Corporation',
  Industry: 'Technology',
  Website: 'https://acme.example.com',
  NumberOfEmployees: 250,
});

console.log('Created Account ID:', newAccount.id);
console.log('Success:', newAccount.success);

Step 3: Read a Record by ID


// Retrieve specific fields by record ID
const account = await conn.sobject('Account').retrieve(newAccount.id);
console.log('Account Name:', account.Name);

// Or use SOQL for more control
const result = await conn.query(
  `SELECT Id, Name, Industry, CreatedDate
   FROM Account
   WHERE Id = '${newAccount.id}'`
);

Step 4: Update a Record


const updateResult = await conn.sobject('Account').update({
  Id: newAccount.id,
  Industry: 'Software',
  Description: 'Updated via jsforce API',
});
console.log('Updated:', updateResult.success);

Step 5: Delete a Record


const deleteResult = await conn.sobject('Account').destroy(newAccount.id);
console.log('Deleted:', deleteResult.success);

Python Example


from simple_salesforce import Salesforce
import os

sf = Salesforce(
    username=os.environ['SF_USERNAME'],
    password=os.environ['SF_PASSWORD'],
    security_token=os.environ['SF_SECURITY_TOKEN']
)

# SOQL query
result = sf.query("SELECT Id, Name, Industry FROM Account LIMIT 5")
for record in result['records']:
    print(f"  {record['Name']} — {record.get('Industry', 'N/A')}")

# Create
new_account = sf.Account.create({'Name': 'Acme Corp', 'Industry': 'Technology'})
print(f"Created: {new_account['id']}")

# Update
sf.Account.update(new_account['id'], {'Industry': 'Software'})

# Delete
sf.Account.delete(new_account['id'])

Output

  • Successful SOQL query returning Account records
  • Created, read, updated, and deleted an Account sObject
  • Console output confirming each operation

Error Handling

Error Cause Solution
INVALID_FIELD Field name wrong in SOQL Check field API names in Setup > Object Manager
MALFORMED_QUERY SOQL syntax error Verify quotes, field names, WHERE clause
INVALID_TYPE sObject name wrong Use API name (e.g., Account, not Accounts)
REQUIRED_FIELD_MISSING Missing required field on create Add required fields (e.g., Name for Account)
ENTITY_IS_DELETED Record already deleted Query with isDeleted = true to find in Recycle Bin

Examples

Run a disposable CRUD smoke test in a sandbox

Authenticate with a sandbox-only integration user, create an Account whose name includes a unique test run ID, query it by that ID, and update only a non-sensitive test field. Assert the expected result count, delete the test record, and confirm it is absent from normal SOQL results. Never aim this tutorial at a production org or use real customer names; preserve only the run ID and pass/fail result in the test log.

Resources

Next Steps

Proceed to salesforce-local-dev-loop for development workflow setup.

Ready to use salesforce-pack?