Skip to content
Platform
- AJAX Toolkit Developer Guide Previous PDF Versions
- Advanced Topics
- Working with Base64 Binary Encoded Strings
- API Call Syntax in the AJAX Toolkit
- API Calls and the AJAX Toolkit
- Download the Salesforce Client Certificate
- Connecting to the API
- Data Types in AJAX Toolkit
- Debugging with the AJAX Toolkit
- Embedding API Calls in JavaScript
- SOAP (AJAX) API End-of-Life Policy
- Error Handling with the AJAX Toolkit
- Differences in Escaping Reserved Characters
- SOAP Header Options with the AJAX Toolkit
- AJAX Toolkit Developer Guide
- Examples of Asynchronous Calls
- Examples of Synchronous Calls
- Object Functions
- Other Resources
- AJAX Proxy
- QueryResultIterator
- remote Function Syntax and Parameters
- Processing Results
- source Context Variable
- AJAX Toolkit Support Policy
- Synchronous and Asynchronous Calls with the AJAX Toolkit
- Timeout Parameter for Asynchronous Calls
- AJAX Typographical Conventions
- Example Calls Using the Ajax Toolkit
- Sample Visualforce Page Using the AJAX Toolkit
- When to Use the AJAX Toolkit
- Working with the AJAX Toolkit
- Actions Developer Guide Previous PDF Versions
- Invoking Actions
- Available Actions
- Overview
- Introducing Actions
- Get Data Graph Metadata
- Session-Based Permission Set Actions
- Apex Actions
- Apply Case Classification Recommendations
- Assign Enablement Program
- Commerce Checkout Flow Actions
- Cancel Approval Submission Action
- Change Order Summary Preview
- Change Order Summary Submit
- Process First Payment Billing for Subscriptions Action
- Commerce Checkout Flow Actions
- Confirm Sales Meeting
- Convert Base64 Speech to Text Action
- Create Service Document Actions
- Create Service Report Actions
- Custom Notification Actions
- Deploy Data Kit Components Action
- Compute Consumption Action
- Create Consumption Alert
- Digital Wallet Actions
- Dynamic Send Survey Invitation Actions
- Einstein Bots Actions
- Email Alert Actions
- Simple Email Actions
- Exit Individuals from a Flow Action
- Explore Conversation Actions
- Extract Data from Document Action
- Flow Actions
- Generate Order Summary Action
- Prompt Template Actions
- Generate Work Orders Actions
- Get Assessment Response Summary
- Get Available Meeting Times
- Get Conversation Intelligence Action
- Get Conversation Transcript Action
- Get Data Category Details
- Get Data Category Groups
- Get Data Graph Data By Lookup
- Sales Engagement Actions
- Inbox Actions
- Knowledge Actions
- Lead Action
- Live Message Notification Actions
- Omni-Channel Action
- Salesforce Omnichannel Inventory Actions
- Salesforce Order Management Actions
- Apply Payment Action
- Payment Sale Action
- Post to Chatter Actions
- Preview Cart to Exchange Order
- Quick Actions
- Reassign Approval Work Item Action
- Recall Approval Submission Action
- Refresh Metric Actions
- Review Approval Work Item Action
- Search Knowledge Articles
- Send Conversation Messages Actions
- Send Notification Actions
- Send Survey Invitation Actions
- Slack Actions
- Speech to Text Action
- Submit Exchange Order
- Submit for Approval Actions
- Survey Invitation Actions
- Perform Survey Sentiment Analysis
- Text to Speech Action (Beta)
- Work Plan and Work Step Actions
- Action Objects
- Create Subscription Records Action
- B2B and D2C Commerce Actions
- Record Tax Reversal Action
- Record Tax Transaction Action
- PlatformAction
- Bulk API Ingest
- Bulk API
- How Bulk API Works
- Bulk API Query
- How Bulk Queries Are Processed
- Limits
- Introduction to Bulk API 2.0 and Bulk API
- Map Data Fields
- BatchInfo
- Errors
- JobInfo
- Schema
- Bulk API Reference
- Use Bulk Query
- Walk Through a Bulk Query Sample Using PK Chunking
- Walk Through a Bulk Query Sample
- Set Up Your Client Application
- Walk Through the Sample Code
- Sample Client Application Using Java
- Content Type Header
- Batch Retry Header
- PK Chunking
- Line Ending Header
- Sforce Call Options Header
- Warning Header
- Headers
- Step Five: Abort a Job
- Step Three: Close a Job
- Step One: Create a Job
- Step Four: Get Job Details
- Quick Start: Bulk API
- Step Two: Monitor a Job
- Step 1: Set Up a Salesforce Developer Edition Org
- Quick Start: Bulk API 2.0
- Bulk API 2.0 and Bulk API Developer Guide Previous PDF Versions
- Bulk API 2.0 End-of-Life Policy
- Bulk API 2.0 Ingest
- Bulk API 2.0 Older Documentation
- Bulk API 2.0
- Troubleshooting Query Timeouts
- Understanding Bulk API 2.0 Query
- Abort a Query Job
- Bulk API 2.0 Query
- Use Compression for Bulk API 2.0 Query Responses
- Create a Query Job
- Delete a Query Job
- Get Information About All Query Jobs
- Get Results for a Query Job
- Get Information About a Query Job
- Get Parallel Results for a Query Job
- Step 6: Query Jobs
- Subscribe to Query Job Platform Events (Beta)
- Troubleshooting Ingest Timeouts
- Sample CSV Files
- Organize Data to Minimize Lock Contention
- Prepare CSV Files
- Prepare Data to Ingest
- Understanding Bulk API 2.0 Ingest
- Use Compression for Bulk API 2.0 Ingest Responses
- Relationship Fields in a Header Row (2.0)
- Valid Date Format in Records (2.0)
- Step 3: Bulk Insert
- Step 4: Bulk Insert with a Multipart Request
- Step 5: Bulk Upsert
- Using cURL
- Step 2: Authentication
- Job States
- Bulk API End-of-Life Policy
- What’s the Difference Between Bulk API 2.0 and Bulk API?
- Limits
- How Requests Are Processed
- Abort a Job
- Content Type Header
- Errors
- Headers
- Sforce Call Options Header
- Warnings Header
- Line Ending Header
- Upsert Records
- Upload Complete
- Create a Job
- Delete a Job
- Get Information About All Ingest Jobs
- Get Job Failed Record Results
- Get Information About an Ingest Job
- Get Job Successful Record Results
- Get Job Unprocessed Record Results
- Upload Job Data
- Introducing the Salesforce Shield Platform Encryption REST API
- REST API Developer Guide Previous PDF Versions
- Get a List of Objects If Metadata Has Changed
- Update a Record and Get Its Field Values in a Single Request
- Update an Account, Create a Contact, and Link Them with a Junction Object
- Execute Dependent Requests in a Single API Call
- Create Nested Records
- Create Multiple Records
- Upsert an Account and Create a Contact
- Delete a Record
- Get a List of Objects
- List Available REST Resources
- Get Event Monitoring Content from a Record
- Describe Event Monitoring Using REST
- Download Large Event Log Files Using cURL with REST
- Query Event Monitoring Data with REST
- Delete Lightning Experience Event Series
- Get a List of Deleted Records Within a Given Timeframe
- Get Field Values from an External Object Record by Using the Salesforce ID
- Get Field Values from an External Object Record by Using the External ID Standard Field
- Get Field Values from a Standard Object Record
- Get Relevant Items
- Get a List of Updated Records Within a Given Timeframe
- List Org Limits
- Mark Records as Recently Viewed
- Approve a Record
- Bulk Approvals
- Reject a Record
- Submit a Record for Approval
- Get a List of All Approval Processes
- Get a Particular Process Rule
- Trigger Process Rules
- Get a List of Process Rules
- Get Feedback on Query Performance (Beta)
- Execute a SOQL Query
- Execute a SOQL Query that Includes Deleted Items
- Traverse Relationships with Friendly URLs
- Get Search Result Layouts for Objects
- Get the Default Search Scope and Order
- Search for a String
- View Recently Viewed Records
- Get Metadata for an Object
- Get Blob Data
- Create a Record
- Get Field and Other Metadata for an Object
- Insert or Update Blob Data
- Get an Image from a Rich Text Area Field
- Manage User Passwords
- Update a Record
- Insert or Update (Upsert) a Record Using an External ID
- Examples
- List Available REST API Versions
- Delete Event Monitoring Data
- Differences Between Hourly and 24-Hour Event Logs
- Query or View Hourly Event Log Files
- Query Hourly Event Log Files
- Get Object Metadata Changes
- Using Composite Resources
- Using a Composite Graph
- Using Event Monitoring
- Getting Information About My Organization
- Managing User Passwords
- Get a Record Using an External ID
- Working with Object Metadata
- Working with Approval Processes and Process Rules
- Working with Recently Viewed Information
- Working with Records
- Working with Searches and Queries
- Limit Info Header
- Assignment Rule Header
- Call Options Header
- Duplicate Rule Header
- MRU Header
- Package Version Header
- Query Options Header
- Warning Header
- Headers
- API End-of-Life Policy
- Send REST Requests with cURL
- Authorization Through External Client Apps or Connected Apps and OAuth 2.0
- REST API Architecture
- Supported Editions and Required Permissions
- Compression Headers
- Conditional Request Headers
- REST Resources and Requests
- Introduction to REST API
- Valid Date and DateTime Formats
- About REST API
- REST API Release Notes
- Generating an OpenAPI 3.0 Document for sObjects REST API (Beta)
- Step Three: Walk Through the Sample Code
- Step One: Sign up for Salesforce Developer Edition
- Step Two: Set Up Authentication
- Using cURL
- Using Other Tools
- Quick Start
- Status Codes and Error Responses
- Skill Requirement
- Work Type
- Add or Update the Translated Value of Multiple Survey Fields in One or More Languages
- Add or Change the Translation of a Survey Field
- Delete the Translated Value of Multiple Survey Fields in One or More Languages
- Delete the Translated Value of a Survey Field
- Get the Translated Values of Multiple Survey Fields in One or More Languages
- Get Translated Value of a Survey Field
- Request Bodies
- Batch Request Body
- sObject Tree Request Body
- Composite Request Body
- Get Appointment Candidates
- Get Appointment Slots
- Scheduling
- Deploy Data Kit Components by Using Deploy Data Kit Components Flow
- Get Custom Invocable Actions
- Return HTTP Headers for Custom Invocable Actions
- Invocable Actions Custom
- Get Invocable Actions
- Return HTTP Headers for Invocable Actions
- Get Standard Invocable Actions
- Return HTTP Headers for Standard Invocable Actions
- Invocable Actions Standard
- Invocable Actions
- Get AppMenu Types
- Return Headers of App Menu Item Requests
- Get AppMenu Items
- Get AppMenu Mobile Items
- Return Headers of AppMenu Mobile Item Requests
- AppMenu Mobile Items
- AppMenu Items
- Data Cloud Query Profile Parameters
- Compact Layouts
- allOrNone Parameters in Composite and Collections Requests
- Composite Batch
- Get a List of Composite Resources
- Send Multiple Requests Using Composite
- Composite
- Composite Subrequest
- Using Composite Graphs
- Composite Graph Limits
- Composite Graph
- sObject Tree
- Create Records Using sObject Collections
- Delete Records Using sObject Collections
- Get Records With a Request Body Using sObject Collections
- Get Records Using sObject Collections
- Update Records Using sObject Collections
- Upsert Records Using sObject Collections
- sObject Collections
- Composite Subrequest Result
- Compile Consent Settings
- Use the Consent API with Data 360
- Consent Write
- Consent
- Describe Global
- Resources by Version
- Get Embedded Service Configuration
- Return Headers for Embedded Service Configuration
- Embedded Service Configuration Describe
- Platform Event Schema by Schema ID
- sObject Get Deleted
- sObject Get Updated
- Get Knowledge Language Settings
- Articles Details
- Articles List
- Data Category Detail
- Data Category Groups
- Support Knowledge with REST API
- Lightning Exit by Page Metrics
- Lightning Toggle Metrics
- Lightning Usage by App Type
- Lightning Usage by Browser
- Lightning Usage by FlexiPage
- Lightning Usage by Page
- Limits
- Reference
- List View Basic Information
- List View Describe
- List View Results
- List Views for an Object
- Salesforce Scheduler Resources
- Compile Multiple Types of Consent Settings
- Named Query APIs for SOQL Queries
- Create Named Query APIs in Setup
- Create Named Query APIs in VS Code
- Named Query API
- Delete Product Schedules
- Get Product Schedules
- Create Product Schedules
- Product Schedules
- Get the Status of Your Portability Request
- Compile Data for a Portability Request
- Portability
- Get Process Approvals
- Return HTTP Headers for Process Approvals
- Submit, Approve, or Reject Process Approvals
- Process Approvals
- Get a Process Rule for an sObject
- Return HTTP Headers for a Process Rule of an sObject
- Trigger a Process Rule for an sObject
- Process Rule for an sObject
- Get Process Rules
- Return HTTP Headers for Process Rules
- Get Process Rules for an sObject
- Return HTTP Headers for Process Rules of an sObject
- Process Rule List for an sObject
- Trigger Process Rules
- Process Rules
- Query More Results
- Query Performance Feedback (Beta)
- Query
- QueryAll More Results
- QueryAll
- Get Quick Actions
- Return Headers of Quick Actions
- Create Records Using Quick Actions
- Quick Actions
- Recently Viewed Items
- Recent List Views
- Record Count
- sObject Relevant Items
- Search Result Layouts
- Search with Parameters in the URI
- Search with Parameters in the Request Body
- Parameterized Search
- Search Scope and Order
- Search Suggested Queries
- Search for Records Suggested by Autocomplete and Instant Results
- Search Suggested Article Title Matches
- Search
- Get Approval Layouts
- Return Headers for Approval Layouts
- Get a Layout for a Single Approval Process on a Specified Object
- Return Headers for a Single Approval Process on a Specified Object
- sObject Single Approval Process
- sObject ApprovalLayouts
- Get Object Metadata Using sObject Basic Information
- Create Records Using sObject Basic Information
- sObject Basic Information
- sObject Blob Get
- Get Compact Layouts Using sObject CompactLayouts
- Return Headers Using sObject CompactLayouts
- sObject CompactLayouts
- sObject Describe
- Platform Event Schema by Event Name
- Get Layouts and Descriptions for a Specified Object
- Get Global Publisher Layouts and Descriptions
- Return Headers for All Global Publisher Layouts
- sObject Global Publisher Layouts
- Return Layout Headers for a Specified Object
- Get Layouts and Descriptions for an Object With Multiple Record Types
- Return Layout Headers for an Object With Multiple Record Types
- sObject Layouts for an Object With Multiple Record Types
- sObject Layouts
- sObject Named Layouts
- sObject PlatformAction
- Get sObject Quick Action Default Values
- Return Headers Using sObject Quick Action Default Values
- Get sObject Quick Action Default Values by ID
- Return Headers Using sObject Quick Action Default Values by ID
- sObject Quick Action Default Values by ID
- sObject Quick Action Default Values
- Get sObject Quick Action Details
- Return Headers Using sObject Quick Action Details
- sObject Quick Action Details
- Get sObject Quick Actions
- Return Headers Using sObject Quick Actions
- Get Specific sObject Quick Actions
- Return Headers Using Specific sObject Quick Actions
- Create Records Using Specific sObject Quick Actions
- sObject Specific Quick Actions
- sObject Quick Actions
- Delete Records Using sObject Relationships
- Get Records Using sObject Relationships
- Update Records Using sObject Relationships
- sObject Relationships
- Delete Records Using sObject Rows
- Get Records Using sObject Rows
- Update Records Using sObject Rows
- sObject Rows
- sObject Rich Text Image Get
- Reset Self-Service User Password
- Get Self-Service User Password Expiration Status
- Return Headers Using sObject Self-Service User Password
- Set Self-Service User Password
- sObject Self-Service User Password
- sObjects Suggested Articles
- sObjects Suggested Articles by ID
- Delete Records Using sObject Rows by External ID
- Get Records Using sObject Rows by External ID
- Return Headers Using sObject Rows by External ID
- Upsert Records Using sObject Rows by External ID
- Create Records Using sObject Rows by External ID
- sObject Rows by External ID
- Reset User Password
- Get User Password Expiration Status
- Return Headers Using sObject User Password
- Set User Password
- sObject User Password
- Salesforce Surveys Translation Resources
- Get Tabs
- Return Headers Using Tabs
- Tabs
- Themes
- Versions
- Batch Response Body
- sObject Tree Response Body
- Composite Response Body
- Candidates
- Time Slots
- Response Bodies
- Record Count Response Body
- Streaming API Developer Guide Previous PDF Versions
- Code Examples
- Set Up Authentication for Developer Testing
- Set Up Authorization with OAuth 2.0
- Example: Authentication
- Step 1: Create an Object
- Step 2: Create a PushTopic
- Step 3: Create the Static Resources
- Step 4: Create a Visualforce Page
- Example: Interactive Visualforce Page without Replay
- Prerequisites
- Step 5: Test the PushTopic Channel
- (Optional) Step 5: Use the Connector with OAuth Bearer Token Login
- Step 4: Use the Connector with Username and Password Login
- Example: Subscribe to and Replay Events Using a Java Client (EMP Connector)
- Step 1: Create an Object
- Step 2: Create a PushTopic (Legacy)
- Step 3: Download and Build the Project
- Learn More About EMP Connector
- Prerequisites
- Example: Subscribe to and Replay Events Using a Lightning Component
- Create a Streaming Channel
- Run a Java Client with OAuth Bearer Token Login
- Run a Java Client with Username and Password Login
- Generate Events Using REST
- Replay Generic Streaming Events with Durable Generic Streaming
- Generic Events (Legacy)
- Generic Streaming Quick Start
- Bayeux Protocol, CometD, and Long Polling
- Clients and Cookies for Streaming API
- Push Technology
- Getting Started with Streaming API
- Streaming API Terms
- Generic Streaming Allocations
- PushTopic Streaming Allocations
- Reference: PushTopic
- Reference: StreamingChannel
- Reference: Streaming Channel Push REST API
- API End-of-Life Policy
- Differences Between Change Events Received with Streaming API vs. Pub/Sub API
- Supported CometD Versions
- Debugging Streaming API Applications
- Streaming Event Features
- Event Notification Rules
- Events
- Notification Scenarios
- Notifications
- NotifyForFields Set to All
- NotifyForFields Set to Referenced
- NotifyForFields Set to Select
- NotifyForFields Set to Where
- Streaming API vs. Pub/Sub API
- Deactivating a Push Topic
- PushTopic Considerations
- PushTopic Event Publishing for PersonAccount
- PushTopic Events (Legacy)
- Compound Fields in PushTopic Queries
- PushTopic Queries
- Security and the PushTopic Query
- Supported PushTopic Queries
- Unsupported PushTopic Queries
- Working with PushTopics
- Replay PushTopic Streaming Events
- Using an Experience Cloud Site with Streaming API-Based Features
- Streaming API Calls Blocked by Security Settings
- Streaming API Error Codes
- Handling Streaming API Errors
- Filtered Subscriptions
- Bulk Subscriptions
- How the Client Connects
- Message Durability
- PushTopic Notification Message Order
- Monitor PushTopic and Generic Event Usage with the REST API
- Monitor PushTopic Event Usage in the UI
- Monitoring Event Usage
- Only Last PushTopic Notification Sent for the Same Record
- Streaming API Notifications Sent in Reverse Order Within a Transaction
- Multiple Streaming API Notifications for the Same Record
- Considerations for Multiple Notifications in the Same Transaction
- Message Reliability
- Clients and Timeouts
- Client Connection Considerations
- SOAP API Developer Guide Previous PDF Versions
- Apex-Related Calls
- Package Version Settings
- API Call Basics
- CompileAndTestRequest
- CompileAndTestResult
- compileAndTest()
- compileClasses()
- compileTriggers()
- Core Data Types Used in API Calls
- LeadConvertResult
- convertLead()
- SaveResult
- create()
- DeleteResult
- delete()
- DeleteByExampleResult
- deleteByExample()
- describeAllTabs()
- describeAppMenu()
- DescribeAppMenuResult
- describeApprovalLayout()
- DescribeApprovalLayoutResult
- DescribeAvailableQuickActionResult
- describeAvailableQuickActions()
- DescribeColor
- describeCompactLayouts()
- DescribeCompactLayoutsResult
- DescribeDataCategoryGroupResult
- describeDataCategoryGroups()
- describeDataCategoryGroupStructures()
- describeDataCategoryGroupStructures()
- DescribeGlobalResult
- describeGlobal()
- DescribeGlobalTheme
- describeGlobalTheme()
- DescribeIcon
- describeKnowledge()
- DescribeLayoutResult
- describeLayout()
- describePrimaryCompactLayouts()
- DescribeQuickActionResult
- describeQuickActions()
- describeSearchLayouts()
- DescribeSearchLayoutResult
- DescribeSearchScopeOrderResult
- describeSearchScopeOrder()
- describeSObjectResult
- describeSObject()
- DescribeSObjectResult
- describeSObjects()
- describeSoftphoneLayout()
- SoqlWhereCondition
- DescribeSoqlListView
- DescribeSoqlListViewParams
- DescribeSoqlListViewResult
- describeSoqlListViews()
- DescribeSoqlListViewsRequest
- DescribeTab
- DescribeTabSetResult
- describeTabs()
- DescribeThemeItem
- DescribeThemeResult
- describeTheme()
- ExecuteAnonymousResult
- executeanonymous()
- executeListView()
- ExecuteListViewRequest
- ExecuteListViewResult
- findDuplicates()
- findDuplicatesByIds()
- GetDeletedResult
- getDeleted()
- GetUpdatedResult
- getUpdated()
- InvalidateSessionsResult
- invalidateSessions()
- Describe Calls
- Core Calls
- ListViewColumn
- ListViewColumn
- ListViewOrderBy
- ListViewRecord
- ListViewRecordColumn
- LoginResult
- login()
- logout()
- MergeResult
- merge()
- PerformQuickActionResult
- performQuickActions()
- ProcessResult
- process()
- AggregateResult
- QueryLocator
- QueryResult
- query()
- queryAll()
- queryMore()
- retrieve()
- RunTestsRequest
- RunTestsResult
- runTests()
- SearchResult
- search()
- UndeleteResult
- undelete()
- SaveResult
- update()
- UpsertResult
- upsert()
- SOAP API End-of-Life Policy
- Implementation Considerations
- Error Handling
- Security and the API
- Authorization Through External Client Apps or Connected Apps and OAuth 2.0
- Objects and SOAP API Calls and Headers for Apex
- Field Types
- Primitive Data Types
- Glossary
- Best Practices with Any Data Loader
- API Calls for Data Replication
- Checking for Structural Changes in the Object
- Client Application Design
- Data Replication Steps
- Integration and Single Sign-On
- Object-Specific Requirements for Data Replication
- Polling for Changes
- Salesforce Settings
- Scope of Data Replication
- Archived Activities
- Call Centers and the API
- Data Loading and Integration
- Data Replication
- Feature-Specific Considerations
- Knowledge
- Person Account Record Types
- External Objects
- Implementing Salesforce Integrations on Lightning Platform
- AllOrNoneHeader
- AllowFieldTruncationHeader
- AssignmentRuleHeader
- CallOptions
- DebuggingHeader
- DisableFeedTrackingHeader
- DuplicateRuleHeader
- EmailHeader
- LimitInfoHeader
- LocaleOptions
- LoginScopeHeader
- MruHeader
- OwnerChangeOptions
- PackageVersionHeader
- QueryOptions
- SessionHeader
- UserTerritoryDeleteHeader
- SOAP Headers
- Tooling API Objects in the Enterprise WSDL
- AdditionalInformationMap
- DuplicateError
- DuplicateResult
- FieldDiff
- MatchRecord
- MatchResult
- Building a Listener
- Understanding Notifications
- Considerations for Security
- Setting Up Outbound Messaging
- Understanding Outbound Messaging
- Understanding the Outbound Messaging WSDL
- Outbound Messaging
- Calls and the Partner WSDL
- Obtaining the Partner WSDL File
- Sample create Call
- Sample query and queryMore Calls
- Sample search Call
- Sample update() Call
- Examples Using the Partner WSDL
- Namespaces in the Partner WSDL
- Objects, Fields, and Field Data and the Partner WSDL
- Queries and the Partner WSDL
- User Interface Themes
- Package Versions and the Partner WSDL
- Using the Partner WSDL
- About SOAP API
- Step 2: Generate or Obtain the Web Service WSDL
- Step 3: Import the WSDL File Into Your Development Platform
- Step 1: Sign up for Salesforce Developer Edition
- Step 4: Walk Through the Sample Code
- Quick Start: SOAP API
- SOAP API Release Notes
- changeOwnPassword()
- EmptyRecycleBinResult
- emptyRecycleBin()
- getServerTimestampResult
- getServerTimestamp()
- getUserInfoResult
- getUserInfo()
- match()
- MatchOptions
- renderEmailTemplate()
- RenderEmailTemplateResult
- resetPassword()
- sendEmailMessage()
- SendEmailResult
- sendEmail()
- setPassword()
- Utility Calls
- Using Background Utility Items
- Application Access Control
- Attribute Access Control
- Component Access Control
- Event Access Control
- Interface Access Control
- Controlling Access
- Accessibility for Lightning Base Components
- Button Labels
- Events
- Forms, Fields, and Labels
- Using Images and Icons
- Menus
- Audio Messages
- Accessibility Tests Example
- Other Accessibility Automation Tools
- Write Aura Component Accessibility Tests
- Supporting Accessibility
- Using Apex
- Using the AppCache
- Add Components to Apps
- Using External CSS
- More Readable Styling Markup with the join Expression
- CSS for RTL Languages
- Styling Apps
- Creating Apps
- Designing App UI
- App Overview
- Adding Aura Components to Managed Packages
- Apex Class Considerations for Packages
- Deleting Aura Components from Managed Packages
- Distributing Applications and Components
- Using the Salesforce Lightning Design System in Apps
- Creating App Templates
- Lightning Aura Components Developer Guide Previous PDF Versions
- Validate Aura API (aura-api)
- Validate JavaScript Intrinsic APIs (ecma-intrinsics)
- Validate Aura Component Public API (secure-component)
- Validate Secure Document Public API (secure-document)
- Validate Secure Window Public API (secure-window)
- Aura Component Validation Rules
- Validation When You Save Code Changes
- Disallow Use of caller and callee (no-caller)
- Disallow Extending Native Objects (no-extend-native)
- Disallow Use of __iterator__ Property (no-iterator)
- Disallow Calling Global Object Properties as Functions (no-obj-calls)
- Disallow Use of __proto__ (no-proto)
- Disallow Script URLs (no-script-url)
- Disallow with Statements (no-with)
- Validation Rules Used at Save Time
- Validation During Development Using ESLint
- Validations for Aura Component Code
- Differences Between Documentation Sites
- Lightning Component Library
- Component Attributes
- Component Body
- Component Bundles
- Component Composition
- Best Practices for Conditional Markup
- Aura Component Bundle Design Resources
- Create Dynamic Picklists for Your Custom Components
- Create Components for the Outlook and Gmail Integrations
- Create Components for Forecast Pages
- Get Your Aura Components Ready to Use on Lightning Pages
- Configure Components for Lightning Experience Record Pages
- Lightning Page Template Component Best Practices
- Create a Custom Lightning Page Template Component
- Tips and Considerations for Configuring Components for Lightning Pages and the Lightning App Builder
- Make Your Lightning Page Components Width-Aware with lightning:flexipageRegionInfo
- Configure Components for Lightning Pages and the Lightning App Builder
- Use Aura Components in Experience Builder
- Create Custom Content Layout Components for Experience Builder
- Create Custom Search and Profile Menu Components for Experience Builder
- Create Custom Theme Layout Components for Experience Builder
- Configure Components for Experience Builder
- Cancel an Asynchronous Request in a Flow Local Action
- Configure the Client-Side Controller for a Flow Local Action
- Configure the Component Markup and Design Resource for a Flow Action
- Create Flow Local Actions Using Aura Components
- Create Custom Component for Guest User Flows
- Customize Flow Screens Using Aura Components
- Flow Navigation Actions
- Build a Custom Navigation Model for Your Flow Screens
- Control Flow Navigation from an Aura Component
- Customize the Flow Footer with an Aura Component
- Dynamically Update a Flow Screen with an Aura Component
- Customize the Flow Header with an Aura Component
- Display Flow Stages with a Progress Indicator on the Flow Screen
- Considerations for Configuring Components for Flows
- Configure Components for Flow Screens
- Design Attribute Considerations for Flow Screen Components and Local Actions
- Flow Screen Components vs. Flow Action Components
- Which Custom Lightning Component Attribute Types Are Supported in Flows?
- Runtime Considerations for Flows That Include Aura Components
- Create Aura Components Using Salesforce CLI
- Create Aura Components in the Developer Console
- Tips for CSS in Components
- CSS in Components
- Sample Custom Components for Outlook and Gmail Integration
- Sample Custom Components for Forecasts Pages
- Lightning Bundle Configurations Available in the Developer Console
- Component Facets
- HTML in Components
- Component IDs
- Integrate Your Custom Apps into the Chatter Publisher
- Localization
- Events Fired During the Rendering Lifecycle
- Component Markup
- Component Names
- Add Query Parameters
- Add Links to Lightning Pages from Your Custom Components
- Basic Navigation
- Navigate to a Record Create Page with Default Field Values
- Migrate to lightning:isUrlAddressable from from force:navigateToComponent
- pageReference Types
- Navigate to a Web Page
- Navigate Across Your Apps with Page References
- Creating Components
- Create an Email as a Quick Action
- Embed a Flow in a Custom Aura Component
- Reference Flow Output Variable Values in a Wrapper Aura Component
- Set Flow Input Variable Values from a Wrapper Aura Component
- Control a Flow’s Finish Behavior by Wrapping the Flow in a Custom Aura Component
- Resume a Flow Interview from an Aura Component
- Display Flow Stages by Wrapping a Progress Indicator
- Display Flow Stages with an Aura Component
- Use Aura Components with Flows
- Using Components
- Standard Actions and Overrides Basics
- Override a Standard Action with an Aura Component
- Creating an Aura Component for Use as an Action Override
- Packaging Action Overrides
- Override Standard Actions with Aura Components
- Configure Components for Record-Specific Actions
- Configure Components for Custom Actions
- Configure Components for Custom Tabs
- Use Aura Components in Lightning Experience and the Salesforce Mobile App
- Add Aura Components as Custom Tabs in a Lightning Experience App
- Base Components with Minimum API Version Requirements
- Aura Component Versioning for Managed Packages
- Using Apex Services from Your Container
- lightning:container NPM Module Reference
- Handling Errors in Your Container
- Using a Third-Party Framework
- Lightning Container Component Limits
- Sending Messages to the Lightning Container Component
- addErrorHandler()
- addMessageHandler()
- callApex()
- removeErrorHandler()
- removeMessageHandler()
- sendMessage()
- Lightning Container
- Lightning Container Component Security Requirements
- Sending Messages from the Lightning Container Component
- Considerations
- Creating a Record
- Deleting a Record
- Changing the Display Density
- Lightning Action Examples
- Handling Errors
- Record Changes
- Loading a Record
- Displaying the Create and Edit Record Modals
- Editing a Record
- SaveRecordResult
- Lightning Data Service
- Working with Salesforce Data
- Disable Caching Setting During Development
- Debugging
- Log Messages
- Creating Documentation Content
- Creating Examples
- Writing Documentation for the Component Library
- Providing Specification Information and Descriptions
- Event Handler Behavior for Active Components
- Actions and Events
- Events Anti-Patterns
- Create Custom Application Events
- Application Event Example
- Fire Application Events
- Handling Bubbled or Captured Application Events
- Handling Application Events
- Application Event Propagation
- Application Events
- Events Best Practices
- Handling Bubbled or Captured Component Events
- Create Custom Component Events
- Component Event Example
- Fire Component Events
- Handle Component Event of Instantiated Component
- Handling Component Events Dynamically
- Handling Component Events
- Component Handling Its Own Event
- Component Event Propagation
- Component Events
- Advanced Events Example
- Firing Events from Non-Aura Code
- Communicating with Events
- Fire the Events
- Load the Contacts
- Create a Component for Lightning Experience and the Salesforce Mobile App
- Events Handled in the Salesforce Mobile App and Lightning Experience
- Event Handling Lifecycle
- System Events
- $Browser
- Conditional Expressions
- $ContentAsset
- Data Binding Between Components
- Dynamic Output in Expressions
- Expression Evaluation
- Expression Functions Reference
- $Locale
- Expression Operators Reference
- Using Expressions
- $Resource
- Value Providers
- Use Lightning Web Components instead of Aura Components
- Browser Support for Aura Components
- Aura Components
- Using the Developer Console
- Events
- Introducing Aura Components
- What is Salesforce Lightning?
- Aura Components Release Notes
- Detecting Data Changes with Change Handlers
- Dynamically Creating Components
- Dynamically Adding Event Handlers To a Component
- Finding Components by ID
- Formatting Dates in JavaScript
- Invoking Actions on Component Initialization
- Modifying Components Outside the Framework Lifecycle
- Dynamically Showing or Hiding Markup
- Adding and Removing Styles
- Which Button Was Pressed?
- Making API Calls from Components
- Working with Attribute Values in JavaScript
- Handling Events with Client-Side Controllers
- Working with a Component Body in JavaScript
- Checking Component Validity
- Return Result for Asynchronous Code
- Return Result for Synchronous Code
- Calling Component Methods
- Modifying the DOM
- Modifying DOM Elements Managed by External Libraries
- Modifying DOM Elements Managed by
- Working with Events in JavaScript
- Sharing JavaScript Code in a Component Bundle
- Using JavaScript
- Using External JavaScript Libraries
- Using JavaScript Promises
- Handle the render Event
- Create a Custom Renderer
- Supported JavaScript
- Throwing and Handling Errors
- Validating Fields
- Getting Labels in Apex
- Getting Labels in JavaScript
- Using Labels
- Input Component Labels
- Dynamically Populating Label Parameters
- Setting Label Values via a Parent Attribute
- Using Custom Labels
- Use Lightning Components in Visualforce Pages
- Use Aura and Lightning Web Components Outside of Salesforce with Lightning Out (Beta)
- Testing Components
- Lightning Message Service Limitations
- Create a Message Channel
- Communicating Across the DOM with Lightning Message Service
- Publish on a Message Channel
- Subscribe to a Message Channel
- Using a Namespace in or from a Managed Package
- Namespace Usage Examples and Reference
- Creating a Namespace in Your Organization
- Component Namespace
- Using the Default Namespace in Organizations with No Namespace Set
- Using Your Organization’s Namespace
- Abstract Components
- Inherited Component Attributes
- Favor Composition Over Inheritance
- Inheritance Rules
- Marker Interfaces
- Interfaces
- Using Object-Oriented Development
- What is Inherited?
- <aura:if> —Clean Unrendered Body —Clean Unrendered Body
- Fixing Performance Warnings
- <aura:iteration> —Multiple Items Set —Multiple Items Set
- Use Lightning CDN to Load Applications Faster
- Performance
- Enable Secure Browser Caching
- Performance Settings
- Trailhead: Explore Lightning Aura Components Resources
- Before You Begin
- Quick Start
- getError()
- getName()
- getParam()
- getParams()
- getReturnValue()
- getState()
- isBackground()
- setAbortable()
- setBackground()
- setCallback()
- setParam()
- setParams()
- setStorable()
- Action
- displayDuration()
- displayDurationInDays()
- displayDurationInHours()
- displayDurationInMilliseconds()
- displayDurationInMinutes()
- displayDurationInMonths()
- displayDurationInSeconds()
- duration()
- endOf()
- formatCurrency()
- formatDate()
- formatDateTime()
- formatDateTimeUTC()
- formatDateUTC()
- formatNumber()
- formatPercent()
- formatTime()
- formatTimeUTC()
- getDateStringBasedOnTimezone
- getDaysInDuration()
- getDefaultCurrencyFormat()
- getDefaultNumberFormat()
- getDefaultPercentFormat()
- getHoursInDuration()
- getLocalizedDateTimeLabels()
- getMillisecondsInDuration()
- getMinutesInDuration()
- getMonthsInDuration()
- getNumberFormat()
- getSecondsInDuration()
- getToday
- getYearsInDuration()
- isAfter()
- isBefore()
- isBetween()
- isPeriodTimeView()
- isSame()
- parseDateTime()
- parseDateTimeISO8601()
- parseDateTimeUTC()
- startOf()
- toISOString()
- translateFromLocalizedDigits()
- translateFromOtherCalendar()
- translateToLocalizedDigits()
- translateToOtherCalendar()
- UTCToWallTime()
- WallTimeToUTC
- AuraLocalizationService
- addEventHandler()
- addHandler()
- addValueHandler()
- addValueProvider()
- autoDestroy()
- clearReference()
- destroy()
- find()
- get()
- getConcreteComponent()
- getElement()
- getElements()
- getEvent()
- getGlobalId()
- getLocalId()
- getName()
- getReference()
- getSuper()
- getType()
- getVersion()
- isConcrete()
- isInstanceOf()
- isValid()
- removeEventHandler()
- set()
- Component
- createComponent()
- createComponents()
- enqueueAction()
- error()
- get()
- getCallback()
- getComponent()
- getReference()
- getRoot()
- getToken()
- log()
- reportError()
- run()
- set()
- warning()
- $A namespace
- fire()
- getEventType()
- getName()
- getParam()
- getParams()
- getPhase()
- getSource()
- getSourceEvent()
- getType()
- pause()
- preventDefault()
- resume()
- setParam()
- setParams()
- stopPropagation()
- Event
- JavaScript API
- addClass()
- getBooleanValue()
- hasClass()
- isArray()
- isEmpty()
- isObject()
- isUndefined()
- isUndefinedOrNull()
- removeClass()
- toggleClass()
- Util
- Custom Apex Class Types
- Using the Aura.Action Attribute Type
- Framework-Specific Types
- Basic Types
- Collection Types
- Function Type
- Standard and Custom Object Types
- Object Types
- aura:application
- Supported aura:attribute Types
- aura:event
- aura:interface
- Reference
- aura:set
- Anchor Tag: <a>
- Supported HTML Tags
- System Tag Reference
- aura:dependency
- aura:method
- Setting Attributes Inherited from an Interface
- Setting Attributes Inherited from a Super Component
- Setting Attributes on a Component Reference
- Sharing JavaScript Code Across Components
- Event Handling in Lightning Base Components
- Creating a Form
- Lightning Design System Considerations
- Working with Lightning Design System Variants
- Lightning Base Components Considerations
- Working with Lightning Base Components
- Vendor Prefixes
- Replace Design Tokens with Styling Hooks
- Tokens Bundles
- Create a Tokens Bundle
- Using Expressions in Tokens
- Extending Tokens Bundles
- Styling with Design Tokens and Styling Hooks
- Standard Design Tokens for Experience Builder Sites
- Standard Design Tokens— force:base
- Overriding Standard Tokens (Deprecated)
- Using Standard Design Tokens
- Defining and Using Tokens
- Migrate Components from the ui Namespace
- Big Objects Implementation Guide Previous PDF Versions
- Big Objects Best Practices
- Define and Deploy Custom Big Objects
- Delete Data in a Custom Big Object
- Big Objects Queueable Example
- Populate a Custom Big Object with Apex
- Populate a Custom Big Object
- View Big Object Data in Reports and Dashboards
- Big Object Query Examples
- Big Objects
- Deploying and Retrieving Metadata with the Zip File
- Custom Address Fields Developer Guide Previous PDF Versions
- Add a Geocode to a Custom Address Field
- Configure State and Country/Territory Picklists
- Apex Examples
- Metadata API Example
- REST API Examples
- SOAP API Examples
- Tooling API Examples
- Custom Address Fields
- Custom Address Fields Requirements and Limitations
- Enable Custom Address Fields
- Canvas Developer Guide Previous PDF Versions
- Canvas App Process
- User Interface Considerations
- Where Canvas Apps Appear
- Canvas Scenarios
- Introducing Canvas
- Supported Browsers
- Supported Salesforce Editions
- Making an App a Canvas Personal App
- Enabling Canvas Personal Apps within an Organization
- Canvas Personal App Process
- Uninstalling a Canvas Personal App
- Canvas Personal Apps
- User Permissions Required
- Create the App
- Quick Start
- Prerequisites
- Set the Canvas App Location for External Client Apps
- Set the Canvas App Location for Connected Apps
- Clone the Project from GitHub
- Configure External Client App Access
- Configure Connected App Access
- Configure Who Can Access the Installed Canvas App
- Use an External Client App
- Use a Connected App
- Deploy the Canvas External Client App to an Org
- Install the Canvas App
- Configure Who Can Access the Canvas App
- Create the Canvas App
- Package the Canvas App
- Quick Start—Advanced
- Package the External Client App for Canvas
- Package the Connected App for Canvas
- Prerequisites
- Upload the Canvas Connected App Package
- Run the Web App Locally
- Update the Canvas App
- Deploy the Web App to Heroku
- Application
- Attributes
- Canvas Limits
- CanvasRequest
- Client
- Context
- Controller
- Dimensions
- Environment
- Links
- Objects
- Organization
- Parameters
- Record Object Examples
- Record
- SignedRequest
- User
- Version
- Lightning Component Code Examples
- Authentication
- Getting Context in Your Canvas App
- Alternatives to Cookies for User Tracking
- OAuth 2.0 Authorization
- Initiate OAuth Flow
- Requesting a Signed Request
- SAML Single Sign-On for Canvas Apps
- Using the <select> Tag in a Canvas App
- Signed Request Authentication
- Verifying and Decoding a Signed Request
- Visualforce Page Code Examples
- Returning Fields in the Record Object
- apex:canvasApp Component
- Visualforce Considerations
- Getting a List of Chatter Users
- Posting to a Chatter Feed
- Cross-Domain XHR
- Referencing the Canvas SDK
- Canvas SDK
- Canvas Apps and Visualforce Pages
- Debugging in a Canvas App
- Chatter Feed Canvas App Access Considerations
- Chatter Feed Context Considerations
- Canvas Apps in the Chatter Feed
- Canvas Apps in the Publisher
- Canvas in the Salesforce Mobile App
- Publisher Canvas App Access Considerations
- Publisher Context Considerations
- Create the Action Manually
- Set Canvas App Location and Create the Action
- Salesforce Mobile App Access Considerations
- Salesforce Mobile App Context Considerations
- Salesforce Mobile App Custom Icons
- Salesforce Mobile App Navigation Methods for Use with Canvas Apps
- Set Canvas App Location and Add it to the Navigation Menu
- Canvas SDK Publisher Events
- Creating a Canvas App Event
- Subscribing to a Canvas App Event
- Unsubscribing from a Canvas App Event
- Canvas App Events Considerations
- Implementing Canvas App Events
- Associating Your CanvasLifecycleHandler with Your App
- Controlling Canvas App Behavior
- Creating a CanvasLifecycleHandler
- Customizing Your App Lifecycle
- Distributing Your CanvasLifecycleHandler Class
- Filtering CanvasRequest Context Data
- Presenting User Error Messages
- Testing Your CanvasLifecycleHandler Implementation
- Add a Canvas App to a Page Layout
- Where Canvas Apps Appear in a Page Layout
- Canvas Apps in a Page Layout or a Mobile Card
- Publishing a Canvas Event from a Visualforce Page
- Resizing a Canvas App in a Visualforce Page
- Subscribing to Events
- Unsubscribing from Events in a Visualforce Page
- Using Events between a Visualforce Page and a Canvas App
- Automatically Resizing a Canvas App
- Handling Orientation Changes in Your Canvas App
- Explicitly Resizing a Canvas App
- Resizing a Canvas App
- Getting the Size of a Canvas App
- Subscribing to Parent Events
- Using Streaming API in a Canvas App
- Using the Streaming API Event
- Subscribing to a Streaming API Event
- Unsubscribing from a Streaming API Event
- Canvas App User Flow—OAuth
- Canvas App User Flow—Signed Request
- Case Feed Developer Guide Previous PDF Versions
- Customizing the Articles Tool
- Replicating a Standard Case Feed Page
- Create Custom Actions
- Customizing the Email Action
- Customizing the Layout and Appearance of Case Feed
- Customizing the Log a Call Action
- Customizing the Portal Action
- Customize Case Feed Actions with Visualforce
- Get Started with the Publisher and Quick Action APIs
- Other Resources
- Method Parity Between the Publisher API and the Quick Action API
- How Are the Publisher and Quick Action APIs Different?
- Publisher APIs in Salesforce Classic
- Work with the Quick Action and Publisher APIs
- Quick Action API Considerations
- getAvailableActionFields
- getAvailableActions
- getCustomAction
- getSelectedActions
- invokeAction
- refresh
- selectAction
- setActionFieldValues
- Quick Action APIs in Lightning Experience
- Change Data Capture Developer Guide Previous PDF Versions
- Add an Apex Trigger
- Change Data Capture Allocations
- Prerequisites
- Example Diagrams for Channels and Channel Members
- Change Event Considerations
- Compose Streams of Change Data Capture Notifications with Custom Channels
- Considerations for Newline Characters and Computing the SHA-256 Hash
- How to Reconstruct a Field from Its Diff Value
- Data Differences in Event Fields
- Sending Data Differences for Fields of Updated Records
- Event Enrichment Considerations
- Example: Delivered Enriched Event Messages
- Enrich Change Events with Extra Fields
- Example: Add Event Enrichment Fields with Metadata API
- Example: Add Event Enrichment Fields with Tooling API
- Change Event Body Fields
- ChangeEventHeader Fields
- Conversions That Generate a Gap Event
- Conversions That Don’t Generate Events
- Conversions That Generate a Change Event
- Change Events for Custom Field Type Conversions
- Filter Expressions in Channel Members
- Field Considerations
- Event Delivery Usage for Filtered Streams
- Filter Expression Format
- Get Custom Channels and Channel Members
- Add a Filter with Metadata API
- Filter Your Stream of Change Events with Channels
- Subscribe to the Channel and Receive the Filtered Event Stream
- Add a Filter with Tooling API
- Change Event Filters
- General Considerations
- Obtain Apex Trigger Subscribers
- Change Data Capture
- Change Event Message Structure
- Monitor Change Event Publishing and Delivery Usage
- Select Objects for Change Notifications with Metadata API and Tooling API
- Change Event Object Support
- Gap Events
- Overflow Events
- Other Types of Change Events: Gap and Overflow Events
- Transaction-Based Replication Steps
- Security Considerations
- Field-Level Security
- Required Permissions for Change Event Subscribers
- Generate an Event Bus Tenant Secret
- Enable Encryption of Change Events
- Change Events for Encrypted Salesforce Data
- Capturing Changes and Encrypting the Event Payload
- Select Objects for Change Notifications in the User Interface
- Change Events for Lead Conversion
- Converting an Account
- Creating and Undeleting a Person Account
- Deleting a Person Account
- Updating a Person Account
- Change Events for Person Accounts
- Change Events for PricebookEntry
- Event Invitees
- Recurring Activities
- Shared Activities and Parent Records for Tasks and Events
- Updating Recurring Calendar Events
- Change Events for Tasks and Events
- Change Events for Users
- Standard Object Notes
- Subscribe with Apex Triggers
- Subscription Channels
- Get Compound Fields in Change Events
- Change Event Storage and Delivery
- Merged Change Events
- Subscribe with Pub/Sub API
- Subscribe to Change Events
- Change Event Trigger Considerations
- Apex Trigger Example
- Change Event Triggers
- Apex Trigger Quick Start
- Test Change Event Triggers
- Keep Your External Data Current with Change Data Capture
- When Do You Use Change Data Capture?
- Change Events for Fields
- Experience Cloud Developer Guide Previous PDF Versions
- Add Pardot Tracking to Your Experience Builder Site
- Expose Component Attributes in Experience Builder
- Supported Aura Components, Interfaces, and Events
- Which Experience Builder Template Do I Use?
- Tips and Considerations for Configuring Aura Components for Experience Builder
- Develop Experience Builder Sites: The Basics
- Case Create Deflection Signal
- Use a CMS with Your Experience Builder Site
- Ensure Custom Components in Orgs with Experience Cloud Sites Are Secure
- Update a Template with the Theme Panel
- Use the CSS Editor for Custom CSS
- Use Custom Fonts in Your Experience Builder Site
- Configure Swappable Search and Profile Menu Components
- Configure a Custom Theme Layout Component
- How Do Custom Theme Layouts Work?
- Customize the Theme Layout of Your Template
- Brand Your Aura Site
- Use Expressions to Add Dynamic Data to Aura Sites
- Give Guest Users Access to Create Records
- Give Guest Users Access to Update Records
- Give Guest Users Access to Read Records
- Before You Begin
- What Is Salesforce Lightning?
- Experience Cloud Developer Release Notes
- Get Up to Speed with Experience Builder Sites
- CSS Overrides Migration for the Record List Component
- Considerations for Deploying Authenticated LWR Sites
- Migrate CSS Overrides
- Avoid Deployment Issues When Moving to Enhanced LWR Sites
- ExperienceBundle for Experience Builder Sites
- CSS Overrides Migration for the Navigation Menu
- CSS Overrides Migration for the Panels Container
- Personalization Target Developer and Group Names
- Comply with a User’s Personal Information Visibility Settings
- CSS Overrides Migration for the Record Banner Component
- CSS Overrides Migration for the Record Detail Component
- Encrypt Record IDs for Guest Users
- CSS Overrides Migration for the Record Layout Component
- CSS Overrides Migration for the Record Related List Component
- CSS Overrides Migration for the Related Articles Component
- CSS Overrides Migration for the Reputation Leaderboard Component
- Sample Code Without Sharing: Give Guest Users Access to Create Records and Read Them Later
- Sample Code Without Sharing: Give Guest Users Access to Create and Read Records in the Same Transaction
- Sample Code Without Sharing: Give Guest Users Access to Create Records and Update Them Later
- Sample Code With Sharing: Give Guest Users Access to Read Records
- Sample Flow Without Sharing: Give Guest Users Access to Create and Read Records in One Flow
- Sample Flow With Sharing: Give Guest Users Access to Read Records
- Sample Flow: Give Guest Users Access to Create Records
- Develop Secure Sites: Authenticated and Guest Users
- Custom Access Control Model Examples
- Declarative Access Control Model Examples
- Unauthenticated Guest User Guidelines
- Limit Access to Apex Classes
- Determine a Security Model
- Limit Declarative Access
- Flow Security
- SOQL Injection
- Resolve Lightning Locker Conflicts in Aura Sites
- Develop Secure Sites: CSP, LWS, and Lightning Locker
- Example: Adobe Analytics and Lightning Locker in Aura Sites
- Enable Third-Party Components to Run When Lightning Locker Is Off
- CSS Overrides Migration for the Embedded Service Sidebar Header Component
- CSS Overrides Migration for Trending Articles by Topic Component
- Report on Deflections: The Deflection Signals Framework
- Configure Drag-and-Drop Aura Components for Experience Builder
- Using the Developer Console
- Command-Line Quick Start (Windows Only)
- Step Four: Create the Configuration File
- Step Two: Create the Encrypted Password
- Step One: Create the Encryption Key File
- Step Three: Create the Field Mapping File
- Step Five: Import the Data
- Data Loader Command Line Introduction
- Prerequisites
- Configure Data Loader
- Data Import Dates
- Data Loader
- Data Loader Third-Party Licenses
- Data Loader Guide Previous PDF Versions
- Using Data Loader
- Define Data Loader Field Mappings
- Export Data from Salesforce
- Insert, Update, or Delete Data Using Data Loader
- Considerations for Installing Data Loader
- Access External Data with Data Access Objects
- Upload Attachments
- Run in Batch Mode (Windows Only)
- Upgrade Your Batch Mode Interface
- Map Columns
- Enable Bulk API 2.0
- Enable Bulk API
- Upload Files and Links with Data Loader
- Configure Database Access
- Installed Directories and Files
- Create a Secure Connection with an External Client App
- Encrypt from the Command Line
- Install Data Loader
- Download and Install Data Loader
- Keep Account Teams
- Log In with Hardware 2FA
- Configure the Data Loader Log File
- Data Loader Command-Line Operations and Exit Codes
- Data Loader Process Configuration Parameters
- Configure Batch Processes
- Run Individual Batch Processes
- Spring Framework
- SQL Configuration
- View the Data Loader Log File
- Uninstall Data Loader
- Data Loader Behavior with Bulk API Enabled
- Perform Mass Deletes
- Perform Mass Updates
- Review Data Loader Output Files
- Data Types Supported by Data Loader
- Run Batch File With Windows Command-Line Interface
- When to Use Data Loader
- Federated Search Developer Guide Previous PDF Versions
- Response: Elements
- Constraints
- Error Codes
- Examples
- Extensions
- Federated Search Developer Guide
- Request: URL Template Parameters
- Additional Considerations for Apex in an Offline-Enabled Mobile App
- Additional Documentation for Apex in Lightning Web Components
- Apex Results Are Separate from Other Primed Data
- Enable Caching of Apex Results
- Imperative Apex While Offline
- Imperative Apex
- Reactive Apex Wires
- Refresh Records Cached in Durable Store While Offline
- Understand Apex Behavior While Offline
- Use Apex in Lightning Web Components While Online
- Apex Wires While Offline
- Use Apex While Mobile and Offline
- Compatibility and Requirements
- Considerations and Limitations
- AppReviewService Example
- Use the AppReviewService API
- AppReviewService User Experience
- Request an App Review on a Mobile Device
- Compatibility and Requirements
- Considerations and Limitations
- Create a Self-Service Kiosk Application
- BarcodeScanner Example—Continuous Scanning (Legacy)
- BarcodeScanner Example—Self-Service Kiosk (Legacy)
- BarcodeScanner Example–Modern Scanning API
- BarcodeScanner Example—Single Scan (Legacy)
- Use the BarcodeScanner API
- Barcode Scanning User Experience
- Understand BarcodeScanner Modern and Legacy APIs
- Scan Multiple Barcodes (Legacy)
- Understand the BarcodeScanner Scanning Lifecycle
- Customize the BarcodeScanner User Interface
- Scan Barcodes on a Mobile Device
- Compatibility and Requirements
- Considerations and Limitations
- BiometricsService Example
- Use the BiometricsService API
- BiometricsService User Experience
- Access a Mobile Device’s Biometrics Capabilities
- Compatibility and Requirements
- Considerations and Limitations
- CalendarService Example
- Use the CalendarService API
- CalendarService User Experience
- Manage Calendar Events on a Mobile Device
- Use Mobile Device Features in Mobile Apps
- Compatibility and Requirements
- Considerations and Limitations
- ContactsService Example
- Use the ContactsService API
- ContactsService User Experience
- Access and Manage Contacts on a Mobile Device
- Compatibility and Requirements
- Considerations and Limitations
- DocumentScanner Example
- Use the DocumentScanner API
- Scan Documents on a Mobile Device
- Compatibility and Requirements
- Considerations and Limitations
- GeofencingService Example
- Use the GeofencingService API
- GeofencingService User Experience
- Monitor Geofence Regions on a Mobile Device
- Compatibility and Requirements
- Considerations and Limitations
- HealthService Example
- Use the HealthService API
- HealthService User Experience
- Access Health Data on a Mobile Device
- Compatibility and Requirements
- Considerations and Limitations
- LocationService Example
- Use the LocationService API
- LocationService User Experience
- Location Basics
- Use Location on a Mobile Device
- Compatibility and Requirements
- Considerations and Limitations
- NFCService Example
- Use the NFCService API
- NFCService User Experience
- Interact with NFC Tags on a Mobile Device
- Compatibility and Requirements
- Considerations and Limitations
- PaymentsService Example
- Use the PaymentsService API
- PaymentsService User Experience
- Accept On-Site Payments with Tap-to-Pay
- Offline Considerations and Limitations
- Considerations for Field Service Mobile App
- Base Components Support
- Entity Support
- General Considerations
- Metadata and Custom Metadata Types Support
- Modules Support
- Wire Adapters Support
- Debug Your Components with Virtual Device Builds
- Install ESLint Rules for Mobile Lightning Web Components
- Use ESLint Rules in Visual Studio Code
- Test Harness Compatibility
- Debug in Android
- Enable Debugging for LWC Developers
- Debug in iOS
- Debug Lightning Web Components
- Download and Install — Android
- Download and Install — iOS
- Install the Test Harness App
- Test Harness Prerequisites
- Create a Quick Action with an LWC
- Display and Run an LWC from a Quick Action
- Use the Test Harness App
- Test Harness Debug Tab
- Test Harness Drafts Tab
- Test Harness Home Tab
- Test Harness Overview
- Test Harness SObjects Tab
- Develop Offline-Ready LWCs with the LWC Offline Test Harness
- Mobile MCP Tools Reference
- Use MCP Tools for Mobile LWC and Offline Development (Beta)
- Use the mobile-core Toolset
- Use the mobile Toolset
- Mobile Development Preview Environments
- Preview Components in the Salesforce Mobile App
- Preview Lightning Web Components on Mobile
- Install Mobile Skills
- Build Mobile LWCs with Mobile Skills
- Integrate Native Device Capabilities with Mobile Skills
- Validate LWCs for Offline Use with Mobile Skills
- Build a Mobile App with Mobile Skills
- Build Native Mobile Apps with Mobile Procode Skills
- Add LWC Quick Actions to Mobile Layouts
- Build a Briefcase
- Deploy Your Configurations
- Download and Install
- Select a Landing Page Template
- Generate and Configure LWC Quick Actions
- Prerequisites & Setup Considerations
- Configure the Offline Experience
- Customize the Offline Experience for the Salesforce Mobile App
- Set Up Your Development Environment
- Set Up Android Studio
- Set Up Xcode
- Install Mobile Extensions
- Understand the Mobile Development Cycle
- Troubleshoot Installation Problems
- Install the Komaci Static Analyzer
- Static Analyzer Validation Rules
- Validate Components During Development
- Validate Lightning Web Components for Offline Use
- Development Tools and Processes
- About This Developer Guide
- LWC Offline Enabled Apps
- Learn Lightning Web Components with Documentation
- Learn Lightning Web Components with Trailhead
- Learn Lightning Web Components
- Mobile App Development with Lightning Web Components and LWC Offline
- Mobile and Offline Developer Guide Previous PDF Versions
- Base Components with Built-In Navigation Actions
- Common Navigation Actions
- Navigation Actions in the Field Service Mobile App
- Navigation Actions in the Salesforce Mobile App
- Programmatic Navigation Actions
- Navigation User Experience
- Navigation
- Offline Environment Details
- What Happens When Something Isn’t Primed (Preloaded)
- Create Components with Offline Analysis In Mind
- Determine Online or Offline Status
- Android Emulator Setup
- Create and Configure a Lightning Web Component
- iOS Simulator Setup
- Field Service Org Setup
- Prerequisites
- Workspace Setup
- Develop a Lightning Web Component Quick Action
- Debug in Android
- Debug in iOS
- Install Local Development Server Plugin
- Debug Lightning Web Components in the Field Service Mobile App
- Quick Start Tutorials
- Best Practices for Using GraphQL in LWC Offline
- Understand Salesforce GraphQL Implementations
- Feature Limitations of Offline GraphQL
- Use GraphQL While Mobile and Offline
- Use Images Uploaded as Asset Files
- Use Images Uploaded as Files (ContentDocument) in an LWC
- Use Images Uploaded as Static Resources
- Image Priming and Offline Considerations
- Image Upload Basics
- Understand File Uploads in Salesforce
- Image Upload Example
- Upload Images While Offline
- Use Images in an LWC Offline-Enabled Component
- Use Third-Party JavaScript in an LWC Offline-Enabled Component
- Use Salesforce Features While Offline
- Follow Accessible Mobile Design Guidelines
- Minimize Bandwidth Usage
- Disable Pull-to-Refresh in the Salesforce Mobile App
- Validate Your Base Component References
- Use Mobile Validation with Salesforce Lightning Design System
- Use Built-In Mobile Tools and Features
- Create Responsive Layouts
- Understand Mobile Development for Lightning Web Components
- Create Mobile-Ready Components
- Salesforce Mobile Notifications Implementation Guide Previous PDF Versions
- PushNotificationPayload Class
- Notifications Resources
- Apex Limits Functions for Push Notifications
- Using Apex Triggers to Send Push Notifications
- Check a User's Mobile Push Registrations
- Enable Push Notifications in a Salesforce Mobile SDK Android App
- Enable Push Notifications in a Salesforce Mobile SDK Hybrid App
- Enable Push Notifications in a Salesforce Mobile SDK iOS App
- Step 3. Configure Your Mobile SDK App
- Create an External Client App for Android
- Create an External Client App for Apple iOS
- Step 2. Creating an External Client App
- Debug Log Events
- Step 1. Developer Registration with Mobile OS Vendors
- Handle Notification Encryption in Salesforce Mobile SDK Apps
- Build Your Own In-App Notification Feature
- Push Notification Limits
- Mobile Notifications Overview
- Step 4. Packaging Components for Customer Organizations
- Notification Builder Platform Push Payloads
- Push Notification Registration and Flow
- Sending Mobile Notifications
- Steps for Implementing Mobile Notifications
- Testing Your External Client App Push Configuration
- Using the Connect REST API Push Notification Resource (Optional)
- CustomNotificationType
- Platform Events Developer Guide Previous PDF Versions
- Java Client
- Platform Event Samples
- Change Data Capture Events
- Standard Platform Event Object List
- Real-Time Event Monitoring Objects
- Standard Platform Event Objects
- AcademicTermGpaCalcEvent
- AcadRgstrApplnEvent
- AcadRgstrEligCritRunEvent
- AgentQltyEvalEvent
- AiJobRunStatusEvent
- AIPredictionEvent
- AIUpdateRecordEvent
- ApiAnomalyEvent
- ApiAnomalyEventStore
- ApiEvent
- ApiEventStream
- AppointmentSchedulingEvent
- AppvlWorkItemNtfcnEvent
- AsgnRsrcApptSchdEvent
- AssetAmendErrorDtlEvent
- AssetAmendInitiatedEvent
- AssetCancelErrorDtlEvent
- AssetCancelInitiatedEvent
- AssetRenewErrorDtlEvent
- AssetRenewInitiatedEvent
- AssetTokenEvent
- AsyncThirdPartyPaymentGatewayEvent
- BatchApexErrorEvent
- BillSchdCreatedEventDetail
- BillingScheduleCreatedEvent
- BulkApi2JobEvent (Beta)
- BulkApiResultEvent
- BulkApiResultEventStore
- CallCoachConfigModifyEvent
- CartToOrderCompletedEvent
- CIInsightsEvent
- CommerceDiagnosticEvent
- ConcurLongRunApexErrEvent
- ConsentEvent
- ConsentUnsubscribeAllEvent
- ConversationInsightEvent
- CreateAssetOrderDtlEvent
- CreateAssetOrderEvent
- CredentialStuffingEvent
- CredentialStuffingEventStore
- CreditInvoiceProcessedEvent
- CreditMemoProcessedEvent
- CrMemoProcessErrDtlEvent
- DataObjectDataChgEvent
- DataObjectMetadataChgEvent
- DatasetExportEvent
- DiscoveryPredictionEvent
- EmailCapturedMatchEvent
- ExtlRecShrEvent
- ExtlRecShrResultEvent
- FileEvent
- FileEventStore
- FirstBillPaymentSetupEvent
- FlowDebugRefreshEvent
- FlowExecutionErrorEvent
- FlowOrchestrationEvent
- FlowOrchestrationWorkItemEvent
- FOStatusChangedEvent
- FulfillOrdItemQtyChgEvent
- GuestUserAnomalyEvent
- GuestUserAnomalyEventStore
- IdentityProviderEventStore
- IdentityVerificationEvent
- InsPlcyEndrStatusEvent
- InsPolicyRnwlQuoteStatusEvent
- InsPolicyRnwlStatusEvent
- InteropTopicSubcrEvent
- InvoiceErrorDetailEvent
- InvoiceProcessedDetailEvent
- InvoiceProcessedEvent
- InvoiceProcPymtExclEvent
- LightningUriEvent
- LightningUriEventStream
- ListViewEvent
- ListViewEventStream
- LoginAnomalyEvent
- LoginAnomalyEventStore
- LoginAsEvent
- LoginAsEventStream
- LoginEvent
- LoginEventStream
- LogoutEvent
- LogoutEventStream
- MobileEmailEvent
- MobileEnforcedPolicyEvent
- MobileScreenshotEvent
- MobileTelephonyEvent
- NegInvcLineProcessedEvent
- ObjectMilestoneCreatedDtlEvent
- ObjectMilestoneCreatedEvent
- OmniTrackingEvent
- OrderStatusChangedEvent
- OrderSummaryCreatedEvent
- OrderSumStatusChangedEvent
- PaymentCreationEvent
- PendingOrdSumProcEvent
- PermissionSetEvent
- PermissionSetEventStore
- PlaceOrderCompletedEvent
- PlatformStatusAlertEvent
- ProcessExceptionEvent
- QuoteSaveEvent
- QuoteToOrderCompletedEvent
- QuoteToOrderErrDtlEvent
- RealtimeAlertEvent
- RemoteKeyCalloutEvent
- ReportAnomalyEvent
- ReportAnomalyEventStore
- ReportEvent
- ReportEventStream
- SalesMeetingBookedEvent
- SearchIndexJobStatusEvent
- ServiceAppointmentEvent
- SessionHijackingEvent
- SessionHijackingEventStore
- SrcPredJobStatusChgEvent
- SvcApptSchdEvent
- UniversalAnomalyEvent
- UniversalAnomalyEventStore
- UriEvent
- UriEventStream
- VideoCallEvent
- VideoCallPurgeEvent
- VideoCallRevisedEvent
- VoidInvoiceProcessedEvent
- WebCartAbandonedEvent
- WebStoreUserCreatedEvent
- Testing Your Platform Event in Apex
- Platform Event Considerations
- Platform Event Allocations
- Considerations for Publishing and Subscribing to Platform Events with Apex and APIs
- Decoupled Publishing and Subscription
- Considerations for Defining and Publishing Platform Events
- Create a Custom Channel for Real-Time Event Monitoring Events Using the API
- Create a Custom Channel for Custom Platform Events Using the API
- List Custom Channels and Channel Members
- Metadata API Example: Create a Custom Channel and Add Real-Time Event Monitoring Events
- Metadata API Example: Create a Custom Channel and Add Platform Events
- Prerequisite: Define Platform Events
- Subscribe to the Channel
- Create a Custom Channel and Add Real-Time Event Monitoring Events with Tooling API
- Create a Custom Channel and Add Platform Events with Tooling API
- Platform Event Fields
- Defining Your Custom Platform Event
- Encrypting Platform Event Messages at Rest in the Event Bus
- Platform Event Error Status Codes
- Get the Event Schema with Pub/Sub API
- Get the Event Schema with REST API
- Get the Event Schema
- Identify and Match Event Messages with the EventUuid Field
- Obtain an Event’s Subscribers by Querying EventBusSubscriber
- End-to-End Example: Printer Supply Automation
- Examples
- Filter Expressions in Channel Members
- Event Delivery Usage for Filtered Streams
- Field Considerations
- Filter Expression Format
- Get Custom Channels and Channel Members
- Add a Filter with Metadata API
- Prerequisite: Define a Platform Event
- Filter Your Stream of Platform Events with Custom Channels
- Subscribe to the Channel and Receive the Filtered Event Stream
- Add a Filter with Tooling API
- Platform Event Filters
- View and Manage an Event’s Subscribers on the Platform Event’s Detail Page
- Obtain Processes That Subscribe to a Platform Event in Metadata API
- Obtain a Platform Event’s Subscribers
- Event-Driven Software Architecture
- Enterprise Messaging Platform Events
- What’s the Difference Between the Salesforce Events?
- Platform Events Developer Guide
- Common Platform Event Allocations
- Default Platform Event Allocations for Event Publishing and Delivery
- Increase Your Event Delivery and Publishing Allocations with a Platform Event Add-On License
- Monitor Hourly Event Delivery Usage with REST API
- Monitor Event Usage Against Your Allocations
- Standard-Volume Platform Event Allocations
- Monitor Event Usage with SOQL Queries by Using PlatformEventUsageMetric
- Which Type of Platform Events Do Allocations Apply to?
- Migrate Platform Event Definitions with Metadata API
- Enhanced Usage Metrics
- Monitor Platform Event Publishing and Delivery Usage
- Delivering Custom Notifications with Platform Events
- Considerations for Subscribing to Platform Events with Processes and Flows
- Choosing a Partition Key
- Parallel Subscription Configuration Examples in Tooling API and Metadata API
- Parallel Subscriptions Considerations
- Parallel Subscription Limits
- Order of Events in Parallel Subscriptions
- Apex Trigger Repartitioning
- Configure Parallel Subscriptions for an Apex Trigger
- Testing an Apex Trigger Configured with Parallel Subscriptions
- Platform Event Processing at Scale with Parallel Subscriptions for Apex Triggers
- Publish Event Messages with Apex
- Publish Event Messages with Salesforce APIs
- Apex Publish Callback Class
- Example: Publish Callback Class That Correlates Callback Results with Event Messages
- Example: Publish Callback Class That Creates Follow-Up Tasks for Failed Publishes
- Example: Publish Callback Class That Creates Follow-Up Tasks for Failed and Successful Publishes
- Invoke the Publish Callback
- Apex Publish Callback Limits
- Publish Callback Best Practices
- Example: Publish Events with a Callback Instance
- Test Apex Publish Callbacks
- Callback Running User and Debug Logs
- Get the Result of Asynchronous Platform Event Publishing with Apex Publish Callbacks
- Create an Event with an EventUuid Field
- Publish Event Messages with Flows
- Publish Event Messages with Processes
- Publish Event Messages with Pub/Sub API
- Publishing Platform Events
- Reference
- Email Notifications for Triggers in Error State
- Find Uncaught Exceptions in Event Log Files
- Retry Event Triggers with EventBus.RetryableException
- Subscribe to Platform Event Notifications with Apex Triggers
- Resume a Platform Event Trigger After an Uncaught Exception
- Subscribe to Platform Event Notifications with CometD
- Comparing setResumeCheckpoint() and EventBus.RetryableException
- Group Platform Events into One Stream with a Custom Channel
- Add a Trace Flag Entry for the Default Automated Process User
- Add a Trace Flag Entry for the Overridden User
- Set Up Debug Logs for Event Subscriptions
- Subscribe to Platform Event Messages with Flows
- Subscribe to Platform Event Notifications in a Lightning Component
- Subscribe to Platform Event Messages with Processes
- Subscribe to Platform Event Notifications with Pub/Sub API
- Subscribing to Platform Events
- Deliver Test Event Messages
- Event and Event Bus Properties in Test Context
- Test Retried Event Messages
- Configure the User and Batch Size for Your Platform Event Trigger with PlatformEventSubscriberConfig
- Apex Trigger Best Practices
- Platform Event Allocations
- Connect REST API Limits
- About This Quick Reference
- Apex Governor Limits
- API Request Limits and Allocations
- SOAP API Call Limits
- API Query Cursor Limits
- Bulk API and Bulk API 2.0 Limits and Allocations
- Metadata Limits
- SOQL and SOSL Limits for Search Queries
- Visualforce Limits
- Salesforce App Limits Quick Reference Previous PDF Versions
- Setting Up Your .NET Developer Environment Previous PDF Versions
- Setting Up Your .NET Developer Environment
- Picking a Path Based on Which API You Use
- Download Developer WSDL Files (WSDL-Based APIs)
- Setting Up External Client App Access (REST-Based APIs)
- Verify the REST Environment (REST-Based APIs)
- Verify the WSDL Environment (WSDL-Based APIs)
- Installing Microsoft Visual Studio
- Setting Up Your Java Developer Environment Previous PDF Versions
- Installing Eclipse
- Installing HttpClient and JSON Frameworks (REST-Based APIs)
- Generating Java Stub Files (WSDL-Based APIs)
- Installing Java
- Setting Up Your Java Developer Environment
- Picking a Path Based on Which API You Use
- Verify the REST Environment (REST-Based APIs)
- Verify the WSDL Environment (WSDL-Based APIs)
- Install the Web Services Connector (WSDL-Based APIs)
- Extracting Data from the API
- Loading Data from the API
- Deleting Data
- General
- Reporting
- Searching
- SOQL and SOSL
- Best Practices
- API Performance
- Custom Search Functionality
- Data Aggregation
- Indexing with Nulls
- Rendering Related Lists with Large Data Volumes
- Multi-Join Report Performance
- Sort Optimization on a Query
- Large Data Volumes Case Studies
- Multitenancy and Metadata Overview
- Search Architecture
- Database Statistics
- Divisions
- Infrastructure for Systems with Large Data Volumes
- Indexes
- Lightning Platform Query Optimizer
- Skinny Tables
- Introduction
- Summary
- Defer Sharing Calculation
- Deleting Data
- Techniques for Optimizing Performance
- Search
- Using Mashups
- Using SOQL and SOSL
- Underlying Concepts
- Best Practices for Deployments with Large Data Volumes Previous PDF Versions
- Common Migration Issues
- Deleting Files from an Organization
- Specifying all Components of a Type
- Specifying Named Components
- Specifying Standard Objects
- Constructing a Project Manifest
- Creating Retrieve Targets
- Checking the Status of a Task
- Entering Salesforce Connection Information
- Installing the Ant Migration Tool
- Canceling a Deployment
- Deploying Code
- Deploying Components
- Run the Same Tests in Sandbox and Production Deployments
- Running a Subset of Tests in a Deployment
- Deploying a Recent Validation
- Deploying Changes to a Salesforce Org
- Describing Metadata Types
- Editing Metadata
- Getting Information About Metadata Types
- Install the Ant Migration Tool
- Listing Components for a Metadata Type
- Prerequisites for Using the Ant Migration Tool
- Retrieving Components in Bulk
- Retrieving Managed or Unmanaged Packages
- Retrieving Unpackaged Components
- Retrieving Metadata from a Salesforce Organization
- Using the Ant Migration Tool
- Running Tests in a Deployment
- Ant Migration Tool
- Ant Migration Tool Guide Previous PDF Versions
- Appendices
- Execution Governors and Limits
- Apex Classes Used in Visualforce Controllers
- Write Efficient Apex and SOQL
- Cache Frequently Accessed Data
- Visualforce Performance Case Study
- Handle Multiple Concurrent Requests
- Optimize CSS
- Control Data Size
- Follow Visualforce Design Guidelines
- Write Efficient Getter Methods
- Optimize HTML
- Optimize Images
- Use the immediate Attribute Carefully
- Best Practices for Improving Visualforce Performance
- Investigate Performance Issues
- Optimize JavaScript
- Lazy Load Page Components
- Optimize Lists and Tables
- Prevent Fields from Dropping Off the Page
- Optimize the View State
- Best Practices for Accessing Component IDs
- Visualforce Best Practices
- Best Practices for Controllers and Controller Extensions
- Best Practices for Using Component Facets
- Best Practices for Static Resources
- Best Practices for Page Block Components
- Best Practices for <apex:panelbar>
- Best Practices for Rendering PDF Files
- Bar Charts
- Chart Colors
- Gauge Charts
- Chart Layout and Annotation
- Other Linear Series Charts
- Pie Charts
- Radar Charts
- Controlling the Appearance of Charts
- Building a Complex Chart with Visualforce Charting
- Visualforce Charting Limitations and Considerations
- Providing Chart Data via a Controller Method
- Chart Data Format
- Providing Chart Data via a JavaScript Array
- Providing Chart Data Using a JavaScript Function
- Providing Chart Data
- A Simple Charting Example
- How Visualforce Charting Works
- Refreshing Chart Data Using <apex:actionSupport>
- Refreshing Chart Data Using JavaScript Remoting
- Updating Charts with Refreshed Data
- Visualforce Charting
- Defining Custom Components
- What are Custom Components?
- Custom Component Attributes
- Custom Component Controllers
- Custom Component Markup
- Using Custom Components in a Visualforce Page
- Managing Version Settings for Custom Components
- Creating and Using Custom Components
- apex:actionFunction
- apex:actionPoller
- apex:actionRegion
- apex:actionStatus
- apex:actionSupport
- analytics:reportChart
- apex:areaSeries
- apex:attribute
- apex:axis
- apex:barSeries
- apex:canvasApp
- apex:chart
- apex:chartLabel
- apex:chartTips
- chatter:feed
- chatter:feedWithFollowers
- chatter:follow
- chatter:followers
- chatter:newsfeed
- chatter:userPhotoUpload
- chatteranswers:aboutme
- chatteranswers:allfeeds
- chatteranswers:changepassword
- chatteranswers:datacategoryfilter
- chatteranswers:feedfilter
- chatteranswers:feeds
- chatteranswers:forgotpassword
- chatteranswers:forgotpasswordconfirm
- chatteranswers:guestsignin
- chatteranswers:help
- chatteranswers:login
- chatteranswers:registration
- chatteranswers:searchask
- chatteranswers:singleitemfeed
- apex:column
- apex:commandButton
- apex:commandLink
- apex:component
- apex:componentBody
- apex:composition
- apex:dataList
- apex:dataTable
- apex:define
- apex:detail
- apex:dynamicComponent
- apex:emailPublisher
- apex:enhancedList
- apex:facet
- apex:flash
- flow:interview
- apex:form
- apex:gaugeSeries
- ideas:detailOutputLink
- ideas:listOutputLink
- ideas:profileListOutputLink
- apex:iframe
- apex:image
- apex:include
- apex:includeLightning
- apex:includeScript
- apex:inlineEditSupport
- apex:input
- apex:inputCheckbox
- apex:inputField
- apex:inputFile
- apex:inputHidden
- apex:inputSecret
- apex:inputText
- apex:inputTextarea
- apex:insert
- knowledge:articleCaseToolbar
- knowledge:articleList
- knowledge:articleRendererToolbar
- knowledge:articleTypeList
- knowledge:categoryList
- apex:legend
- apex:lineSeries
- apex:listViews
- liveAgent:clientChat
- liveAgent:clientChatAlertMessage
- liveAgent:clientChatCancelButton
- liveAgent:clientChatEndButton
- liveAgent:clientChatFileTransfer
- liveAgent:clientChatInput
- liveAgent:clientChatLog
- liveAgent:clientChatLogAlertMessage
- liveAgent:clientChatMessages
- liveAgent:clientChatQueuePosition
- liveAgent:clientChatSaveButton
- liveAgent:clientChatSendButton
- liveAgent:clientChatStatusMessage
- apex:logCallPublisher
- apex:map
- apex:mapInfoWindow
- apex:mapMarker
- apex:message
- apex:messages
- messaging:attachment
- messaging:emailHeader
- messaging:emailTemplate
- messaging:htmlEmailBody
- messaging:plainTextEmailBody
- apex:milestoneTracker
- apex:outputField
- apex:outputLabel
- apex:outputLink
- apex:outputPanel
- apex:outputText
- apex:page
- apex:pageBlock
- apex:pageBlockButtons
- apex:pageBlockSection
- apex:pageBlockSectionItem
- apex:pageBlockTable
- apex:pageMessage
- apex:pageMessages
- apex:panelBar
- apex:panelBarItem
- apex:panelGrid
- apex:panelGroup
- apex:param
- apex:pieSeries
- apex:radarSeries
- apex:relatedList
- apex:remoteObjectField
- apex:remoteObjectModel
- apex:remoteObjects
- apex:repeat
- apex:scatterSeries
- apex:scontrol
- apex:sectionHeader
- apex:selectCheckboxes
- apex:selectList
- apex:selectOption
- apex:selectOptions
- apex:selectRadio
- site:googleAnalyticsTracking
- site:previewAsAdmin
- apex:slds
- social:profileViewer
- apex:stylesheet
- support:caseArticles
- support:caseFeed
- support:caseUnifiedFiles
- support:clickToDial
- support:portalPublisher
- apex:tab
- apex:tabPanel
- apex:toolbar
- apex:toolbarGroup
- topics:widget
- apex:variable
- apex:vote
- wave:dashboard
- Standard Visualforce Component Reference
- Standard List Controllers
- Accessing Data with List Controllers
- Standard List Controller Actions
- Associating a Standard List Controller with a Visualforce Page
- Editing Records with List Controllers
- List Views with Standard List Controllers
- Pagination with a List Controller
- Accessing Data with a Standard Controller
- Using Standard Controller Actions
- Associating a Standard Controller with a Visualforce Page
- Checking for Object Accessibility
- Styling Pages that Use Standard Controllers
- Validation Rules and Standard Controllers
- Standard Controllers
- Considerations for Creating Custom Controllers and Controller Extensions
- Build a Custom Controller
- What are Custom Controllers and Controller Extensions?
- Test a Custom Controller
- Building a Controller Extension
- Order of Execution for Visualforce Page Get Requests
- Order of Execution Example
- Order of Execution in a Visualforce Page
- Controller Methods
- Order of Execution for Visualforce Page Postback Requests
- Setting Read-Only Mode for Controller Methods
- Setting Read-Only Mode for an Entire Page
- Working with Large Sets of Data
- Controller Class Security
- Validation Rules and Custom Controllers
- Custom Controllers and Controller Extensions
- Building a Custom List Controller
- Deferred Creation of Dynamic Components
- Creating and Displaying Dynamic Components
- Dynamic Visualforce Components
- Dynamic Components Restrictions
- Example Using a Related List
- Working with Field Sets
- Dynamic References to Action Methods Using $Action
- Dynamic References to Schema Details Using $ObjectType
- Dynamic References to Static Resources Using $Resource
- Dynamic References to Global Variables
- Reference Apex Maps and Lists
- Using Dynamic References with Custom Objects and Packages
- Using Dynamic References with Standard Objects
- Dynamic Visualforce Bindings
- Integrate Email with Visualforce
- Creating a Custom Controller with the Messaging Class
- Sending an Email with Visualforce
- Creating an Email Attachment
- Add Attachments to a Visualforce Email Template
- Create a Visualforce Email Template
- Visualforce Email Templates
- Use a Custom Stylesheet in a Visualforce Email Template
- Using Custom Controllers within Visualforce Email Templates
- Embed Flows in Visualforce Pages
- An Advanced Example of Using <flow:interview>
- Customize a Flow’s User Interface
- Configure the finishLocation Attribute in a Flow
- Get Flow Variable Values to a Visualforce Page
- Render Flows with Visualforce
- Render Lightning Runtime for Flows in a Visualforce Page
- Control Whether Users Can Pause a Flow from a Visualforce Page
- Customize How Users Resume Paused Flow Interviews
- Set Flow Variable Values from a Visualforce Page
- How is Visualforce Architected?
- Which Permissions are Required for Visualforce Development?
- How Visualforce is Versioned
- Standard Visualforce Components and Base Lightning Web Components Side by Side
- How Do Visualforce Pages Compare to S-Controls?
- What is Visualforce?
- Why Should I Use Lightning Web Components instead of Visualforce?
- Introducing Visualforce
- Using $Component to Reference Components from JavaScript
- Using JavaScript in Visualforce Pages
- Using JavaScript Libraries with Visualforce
- Common Visualforce JavaScript Remoting API Validation Errors
- Comparing JavaScript Remoting and <apex:actionFunction>
- Comparing JavaScript Remoting and Remote Objects
- Configuring a JavaScript Remoting Request
- Understanding Date and Time Serialization
- Debugging JavaScript Remoting
- Declaring a Remote Method in Apex
- JavaScript Remoting Example
- Handling the Remote Response
- Adding JavaScript Remoting to a Visualforce Page
- JavaScript Remoting Limits and Considerations
- Namespaces and JavaScript Remoting
- OAuth 2.0 Authentication for JavaScript Remoting
- Remote Methods and Inheritance
- Declaring a Remote Method with Interface Parameters
- Scope and Visibility of @RemoteAction Methods
- What Is JavaScript Remoting?
- When to Use JavaScript Remoting
- JavaScript Remoting for Apex Controllers
- Visualforce Remote Objects Callback Functions
- Best Practices for Using Remote Objects
- An Example of Using Visualforce Remote Objects with jQuery Mobile
- An Example of Using Remote Method Overrides in Remote Objects
- A Simple Example of Remote Objects
- Visualforce Remote Objects Limits
- Creating Records with Remote Objects
- Deleting Records with Remote Objects
- Overriding Default Visualforce Remote Objects Operations
- Format and Options for Visualforce Remote Objects Query Criteria
- Retrieving Records with Remote Objects
- Updating Records with Remote Objects
- Upserting Records with Remote Objects
- Using Visualforce Remote Objects in JavaScript
- Visualforce Remote Objects
- Creating Basic Maps
- Example of Building Map Data in Apex
- Adding Info Windows to Markers
- Using Custom Marker Icons
- Adding Location Markers to a Map
- Creating Maps with Visualforce
- Considerations and Limitations
- Create a Message Channel
- Communicating Across the DOM with Lightning Message Service
- Publish on a Message Channel
- Subscribe and Unsubscribe from a Message Channel
- The Development Process and the Importance of Testing
- Salesforce Platform Development Process
- Setting Up Your Development System
- Testing Visualforce Pages in the Salesforce Mobile App
- Understanding the Salesforce Mobile App Container
- Developing Salesforce Apps with Visualforce
- Considerations for Customizing Overrides
- Remove a Custom Override
- Override Buttons, Links, and Tabs with Visualforce
- Define Custom Buttons and Links to Visualforce Pages
- Displaying Record Types
- Adding Custom List Buttons using Standard List Controllers
- Overriding Tabs Using a Standard List Controller
- Access Controllers From Visualforce Pages in Different Packages
- Adding Visualforce to a Salesforce AppExchange App
- Managing Package Version Settings for Visualforce Pages and Components
- Advanced Examples
- Create Advanced Visualforce Dashboard Components
- Defining Getter Methods
- Defining Navigation Methods
- Defining Action Methods
- Creating a Custom Controller Class
- Creating Your First Custom Controller
- Mass Updating Records with a Custom List Controller
- Creating a Wizard
- Adding and Customizing Input Field Labels
- Setting the Tab Order for Fields in a Form
- Provide Status for Asynchronous Operations
- Apply Ajax Behavior to Events on Any Component
- Implement Partial Page Updates with Command Links and Buttons
- Use Ajax in a Page
- Create Visualforce Dashboard Components
- Compile Visualforce Successfully
- Using the Visualforce Component Library
- Displaying Related Lists for Custom Objects
- Adding Dependent Fields to a Page
- Displaying Field Values with Visualforce
- Put Visualforce Pages on External Domains
- Creating Your First Page
- Enabling Inline Editing
- Using Input Components in a Page
- Editing a Table of Data in a Page
- Building a Table of Data in a Page
- Redirecting to a Standard Object List Page
- Getting and Setting Query String Parameters on a Single Page
- Getting Query String Parameters
- Setting Query String Parameters in Links
- Using Query String Parameters in a Page
- Converting a Page to a PDF File
- Override an Existing Page with a Visualforce Page
- Getting a Quick Start with Visualforce
- Creating a Static Resource
- Referencing Untrusted Third-Party Content with iframes
- Referencing a Static Resource in Visualforce Markup
- Using Static Resources
- Cross-Site Request Forgery (CSRF)
- Data Access Control
- Security Tips for Apex and Visualforce Development
- Unescaped Output and Formulas in Visualforce Pages
- SOQL Injection
- Cross Site Scripting (XSS)
- Creating an Empty HTML5 “Container” Page
- HTML Comments and IE Conditional Comments
- Setting Custom HTML Attributes on Visualforce Components
- HTML Tags Added or Modified by Visualforce
- Relaxed Tidying for the HTML5 Doctype
- Manually Override Automatic <html> and <body> Tag Generation
- Customizing the Appearance and Output of Visualforce Pages
- Component Behavior When Rendered as PDF
- Visualforce PDF Rendering Considerations and Limitations
- Render a Visualforce Page as PDF from Apex
- Render a Visualforce Page as a PDF File
- Fonts Available When Using Visualforce PDF Rendering
- Extending Salesforce Styles with Stylesheets
- Change the MIME type of Your Visualforce Page
- Defining Styles for a Component’s DOM ID
- Using Custom Styles
- Using a Custom Doctype
- Determining the Salesforce Style That Users See in JavaScript
- Identifying the Salesforce Style Your Users See
- Using Salesforce Styles
- Using the Lightning Design System
- Suppressing the Salesforce User Interface and Styles
- Using Styles from Salesforce Stylesheets
- Styling Visualforce Pages
- Defining Templates with <apex:composition>
- Referencing an Existing Page with <apex:include>
- Templating with Visualforce
- Using the Development Mode Footer
- About the Visualforce Editor
- Tools for Visualforce Development
- Accessing Metrics for Your Visualforce Pages
- Functions
- Valid Values for the $Action Global Variable
- $Action
- $Api
- $Asset
- $Cache.Org
- $Cache.Session
- $Component
- $ComponentLabel
- $CurrentPage
- $FieldSet
- $Label
- $Label.Site
- $MessageChannel
- $Network
- Field Schema Details Available Using $ObjectType
- Object Schema Details Available Using $ObjectType
- $ObjectType
- $Organization
- $Page
- $Permission
- $Profile
- $Resource
- $SControl
- $Setup
- $Site
- $System.OriginDateTime
- $User
- $UserRole
- $User.UITheme and $User.UIThemeDisplayed
- Global Variables
- Expression Operators
- Global Variables, Functions, and Expression Operators
- Visualforce Developer Guide Previous PDF Versions
- Mixed Visualforce and HTML
- JavaScript Remoting and Static HTML
- Standard Visualforce Pages
- Choosing an Architecture for Visualforce Pages in the Salesforce Mobile App
- Visualforce Components and Features to Avoid in the Salesforce Mobile App
- Unsupported Visualforce Components
- Sharing Visualforce Pages Between Mobile and Desktop
- Excluding Visualforce Pages from Mobile or Desktop
- Optimizing the Performance of Visualforce Pages in the Salesforce Mobile App
- Creating Visualforce Pages That Work in Mobile and Desktop
- Style Existing Visualforce Pages with Lightning Experience Stylesheets
- Guidelines and Best Practices
- Tell Me More: Where Visualforce Pages Can Appear in the Salesforce Mobile App
- Alias Notation
- Change the Batch Size in Queries
- Considerations for Querying Currency Data Using SOQL
- Syndication Feed SOQL and Mapping Syntax
- Location-Based SOQL Queries
- SOQL Object Limits and Limitations
- Use null in WHERE
- convertCurrency()
- Query Multi-Select Picklists
- Understanding Relationship Names, Custom Objects, and Custom Fields
- Understanding Relationship Fields and Polymorphic Fields
- null Values in Lookup Relationships and Outer Joins
- Identifying Parent and Child Relationships
- Using Relationship Queries with Data Category Selection Objects
- Using Relationship Queries with History Objects
- Understanding Relationship Query Limitations
- Using Relationship Queries with the Partner WSDL
- Understanding Query Results
- Using Relationship Queries
- Understanding Relationship Names
- Relationship Queries
- Support for Field Types in Aggregate Functions
- Aggregate Functions
- Comparison Operators
- WHERE
- convertTimezone()
- COUNT() and COUNT(fieldName)
- Date Functions
- Date Formats and Date Literals in WHERE
- SOQL SELECT Examples
- SELECT
- Filter on Polymorphic Relationship Fields
- FOR UPDATE
- FOR VIEW and FOR REFERENCE
- FORMAT ()
- FORMULA() (Beta)
- SOQL SELECT Functions
- Considerations for GROUP BY
- Use Aliases with GROUP BY
- GROUP BY CUBE
- Identify Subtotals with GROUP BY
- GROUP BY ROLLUP
- GROUP BY
- GROUPING( fieldName ) )
- HAVING
- LIMIT
- Logical Operators
- OFFSET
- ORDER BY
- Quoted String Escape Sequences
- Reserved Characters
- SET OPTIONS
- toLabel()
- TYPEOF
- UPDATE
- USING LOOKUP
- USING SCOPE
- dataCategorySelection
- WITH DATA CATEGORY
- WITH RecordVisibilityContext
- WITH
- SOQL SELECT Syntax
- Introduction to SOQL and SOSL
- Typographical Conventions in This Document
- Salesforce Object Query Language (SOQL)
- Example Text Searches
- FIND {SearchQuery}
- FORMAT()
- IN SearchGroup
- LIMIT n
- SOSL Limits on External Object Search Results
- SOSL Limits on Search Results
- OFFSET n
- convertCurrency()
- RETURNING FieldSpec
- ORDER BY Clause
- SOSL Syntax
- toLabel(fields)
- Typographical Conventions in This Document
- Update an Article’s Keyword Tracking with SOSL
- Update an Article’s Viewstat with SOSL
- USING Listview=
- WHERE
- WITH DATA CATEGORY DataCategorySpec
- WITH FEED NewsFeed
- WITH HIGHLIGHT
- WITH METADATA
- WITH NETWORK NetworkIdSpec
- WITH PricebookId
- WITH SNIPPET
- WITH SPELL_CORRECTION
- WITH DivisionFilter
- Salesforce Object Search Language (SOSL)
- SOQL and SOSL Reference Previous PDF Versions