Claude Skills
CollectionsCompareWorkflowsNominate
Sign inSign up
© 2026 Curated Agent Skills·Learn more about Agent Skills
Back to repository

soql-syntax

verified

SOQL query language syntax, clauses, operators, and functions. Use when writing or debugging SOQL queries.

View on GitHub

Marketplace

grail-automation

grailautomation/claude-plugins

Plugin

salesforce-soql

integrations

Repository

grailautomation/claude-plugins

salesforce-soql/skills/soql-syntax/SKILL.md

Last Verified

February 3, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/grailautomation/claude-plugins/blob/main/salesforce-soql/skills/soql-syntax/SKILL.md -a claude-code --skill soql-syntax

Installation paths:

Claude
.claude/skills/soql-syntax/
Powered by add-skill CLI

Instructions

# SOQL Syntax Reference

Salesforce Object Query Language (SOQL) for querying Salesforce data.

## Basic Query Structure

```sql
SELECT field1, field2, ...
FROM ObjectName
[WHERE conditions]
[ORDER BY field [ASC|DESC] [NULLS FIRST|LAST]]
[LIMIT n]
[OFFSET n]
```

## Clauses

### SELECT

```sql
-- Specific fields
SELECT Id, Name, CreatedDate FROM Account

-- Parent fields (dot notation)
SELECT Id, Name, Account.Name FROM Contact

-- Child records (subquery)
SELECT Id, Name, (SELECT Id, Name FROM Contacts) FROM Account

-- Aggregate functions
SELECT COUNT(Id), SUM(Amount), AVG(Amount) FROM Opportunity GROUP BY StageName
```

### WHERE

See [clauses.md](clauses.md) for complete WHERE clause reference.

```sql
-- Comparison
WHERE Amount > 10000
WHERE Name = 'Acme'
WHERE CloseDate < 2024-01-01

-- Null checks (use <> not != for CLI compatibility)
WHERE AccountId <> null
WHERE AccountId = null

-- LIKE (wildcards: % = any chars, _ = single char)
WHERE Name LIKE 'Acme%'
WHERE Email LIKE '%@gmail.com'

-- IN list
WHERE Status IN ('New', 'Working', 'Qualified')
WHERE Id IN ('001xxx', '001yyy')

-- AND/OR/NOT
WHERE Amount > 1000 AND StageName = 'Closed Won'
WHERE (Status = 'New' OR Status = 'Working')
WHERE NOT Status = 'Closed'
```

### ORDER BY

```sql
ORDER BY Name                    -- Ascending (default)
ORDER BY Amount DESC             -- Descending
ORDER BY CloseDate DESC NULLS LAST
ORDER BY Account.Name, Name      -- Multiple fields
```

### LIMIT and OFFSET

```sql
LIMIT 100                        -- Return max 100 records
LIMIT 10 OFFSET 20               -- Skip 20, return 10 (pagination)
```

## Functions

See [functions.md](functions.md) for complete function reference.

### Aggregate Functions

```sql
SELECT COUNT(Id) FROM Account
SELECT SUM(Amount), AVG(Amount), MIN(Amount), MAX(Amount) FROM Opportunity
SELECT COUNT(Id), StageName FROM Opportunity GROUP BY StageName
SELECT StageName, COUNT(Id) FROM Opportunity GROUP BY StageName HAVING COUNT(Id) > 5
```

### Dat

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
2588 chars