This document provides a comprehensive overview of all Salesforce metadata and data that Stood Flows accesses. All operations are read-only - we never modify your Salesforce org.
Stood Flows accesses metadata and data from your Salesforce org to build visual flow graphs and provide analytics. We use standard Salesforce APIs to retrieve this information.
SOQL Queries - Standard and Tooling API queries for metadata and aggregate data
REST API Endpoints - Describe endpoints and metadata APIs for field and relationship information
Field History Tracking - Historical data for lifecycle analysis (requires Field History Tracking to be enabled)
We retrieve all available Lead status values including:
Status labels and API names
Conversion indicators
Sort order for display
We retrieve aggregate counts of Lead records:
Counts grouped by Status and Record Type (when record types exist)
Counts grouped by Status only (when no record types exist)
Counts for records without Record Types
Per-record-type counts for detailed analysis
For lifecycle analytics, we access Lead Status field change history:
Status transitions (old value → new value)
Timestamps of changes
User information (who made the change)
Profile information (profile of user who made the change)
Limited to most recent 25,000 records per analysis
Note: Requires Field History Tracking enabled on Lead Status field.
We retrieve all available Opportunity stage values including:
Stage labels and API names
Active/inactive status
Closed and won indicators
Probability and forecast category information
Sort order for display
We retrieve aggregate counts of Opportunity records:
Counts grouped by Stage and Record Type (when record types exist)
Counts grouped by Stage only (when no record types exist)
Counts for records without Record Types
Per-record-type counts for detailed analysis
For lifecycle analytics, we access Opportunity StageName field change history:
Stage transitions (old value → new value)
Timestamps of changes
User information (who made the change)
Profile information (profile of user who made the change)
Limited to most recent 25,000 records per analysis
Note: Requires Field History Tracking enabled on Opportunity StageName field.
We retrieve all available Case status values including:
Status labels and API names
Closed status indicators
Sort order for display
Note: Case count queries follow the same pattern as Lead/Opportunity but are not currently implemented in the platform.
Note: Case history queries follow the same pattern as Lead/Opportunity but are not currently implemented in the platform.
We retrieve business process metadata for Lead, Opportunity, and Case objects:
Process names and descriptions
Active/inactive status
Associated object types
For each business process, we retrieve detailed metadata including:
Stage/status definitions within the process
Process configuration
Metadata JSON structure
We retrieve all active Record Types for Lead, Opportunity, and Case objects:
Record type names and developer names
Associated business processes
Active status
Object type associations
We retrieve active Flow definitions:
Flow names and descriptions
Active version information
Flow metadata for record-triggered flows
Limited to active flows with active versions
We retrieve active Apex triggers for Lead and Opportunity objects:
Trigger names and events
Associated object types
Trigger code (for review)
Usage indicators (Before Insert, After Update, etc.)
Note: Case triggers are not currently included in the query scope.
We retrieve page layout definitions for Lead and Opportunity objects:
Layout names and types
Associated object types
Entity definitions
For each layout, we retrieve detailed metadata including:
Field configurations
Related list configurations
Layout structure
Custom object references
Note: Case layouts are not currently included in the query scope.
We retrieve profile-layout associations:
Which layouts are assigned to which profiles
Record type associations
Object type associations
Note: Case profile layouts are not currently included in the query scope.
We retrieve profile definitions:
Profile names
Profile metadata (via REST API)
Record type visibility settings
Default record type assignments
We retrieve active validation rules for Lead, Opportunity, and Case objects:
Validation rule names and IDs
Active status
Error condition formulas
Error messages
Descriptions
Error display field information
Note: Only active validation rules are retrieved. Validation rules are queried via Tooling API and full metadata is retrieved for each rule.
We use Salesforce Describe API to retrieve field and relationship metadata:
Retrieves comprehensive metadata about the Lead object:
All field definitions
Field types and properties
Picklist values
Lookup and master-detail relationships
Child relationships (related lists)
Retrieves comprehensive metadata about the Opportunity object:
All field definitions
Field types and properties
Picklist values
Lookup and master-detail relationships
Child relationships (related lists)
Retrieves comprehensive metadata about the Case object:
All field definitions
Field types and properties
Picklist values
Lookup and master-detail relationships
Child relationships (related lists)
For custom objects discovered through relationships:
Field definitions
Relationship information
Object metadata
For each active flow, we retrieve complete flow metadata:
Flow elements and structure
Variables and constants
Decision logic
Action configurations
For each profile, we retrieve complete profile metadata:
Record type visibility settings
Field-level permissions
Object permissions
Layout assignments
We access organization limits information:
API call limits and usage
Data storage limits and usage
File storage limits and usage
Other organization limits
We retrieve user license information:
License types and names
Total licenses available
Used licenses count
License status
Note: UserLicense data may not be available in Developer/Sandbox editions.
We retrieve permission set license information:
License labels
Total licenses available
Used licenses count
For license analysis, we retrieve user information:
User names and emails
Profile associations
License associations
Last login dates
Active/inactive status
Limited to 10,000 users per query
We discover custom objects through relationships with standard objects:
Field Analysis:
Analyze Lead, Opportunity, and Case field definitions
Identify lookup and master-detail fields pointing to custom objects
Identify custom object relationships
Related List Analysis:
Analyze child relationships on Lead, Opportunity, and Case
Identify custom objects with related lists
Track relationship names and labels
Layout Verification:
Check if discovered custom objects appear in layouts
Verify custom object usage in page layouts
Metadata Retrieval:
Retrieve field and relationship metadata for discovered custom objects
Understand custom object structure
Performance: Heavy custom object querying is optimized for performance
Scope: Only custom objects related to Lead/Opportunity/Case are discovered
Layout Checking: Custom objects are verified against standard object layouts
All metadata is stored in versioned snapshots in our database:
Purpose: Minimize Salesforce API calls and improve performance
Process: When you refresh, a new version is created with latest data
Usage: Application uses stored versions for display
Benefits:
Reduced API usage
Faster response times
Historical tracking
Offline capability
Versions: Stored indefinitely (per organization)
Field History: Limited by Salesforce retention (typically 18-24 months)
User Data: Stored for license analysis (refreshed on demand)
Object | Purpose | API Type |
LeadStatus | Lead status definitions | Standard |
OpportunityStage | Opportunity stage definitions | Standard |
CaseStatus | Case status definitions | Standard |
BusinessProcess | Business process definitions | Tooling |
RecordType | Record type definitions | Tooling |
Opportunity | Opportunity records (for counts) | Standard |
Lead | Lead records (for counts) | Standard |
FlowDefinition | Flow definitions | Tooling |
ApexTrigger | Apex trigger definitions | Tooling |
Layout | Layout definitions | Tooling |
ProfileLayout | Profile-layout associations | Tooling |
Profile | Profile definitions | Tooling |
ValidationRule | Validation rule definitions | Tooling |
User | User records (for counts and licenses) | Standard |
LeadStatusHistory | Lead status change history | Standard |
OpportunityFieldHistory | Opportunity stage change history | Standard |
UserLicense | User license information | Standard |
PermissionSetLicense | Permission set license information | Standard |
Object | Purpose |
Lead | Field and relationship metadata |
Opportunity | Field and relationship metadata |
Case | Field and relationship metadata |
Custom Objects | Field and relationship metadata (as discovered) |
Flow | Flow metadata |
Profile | Profile metadata |
Limits | Organization limits |
All data access is read-only:
No modifications to your Salesforce org
No data writes to Salesforce
Safe for production environments
No impact on your org's data or configuration
We optimize data access to minimize API usage:
Aggregate Queries: Use GROUP BY for counts instead of retrieving individual records
Selective Queries: Only query active records and relevant objects
Versioned Caching: Store results to avoid repeated queries
Incremental Refresh: Only fetch new data when refreshing
We respect Salesforce API rate limits:
Standard API: 15,000 calls per 24 hours (default)
Tooling API: 5,000 calls per 24 hours (default)
Progress Tracking: Show API usage during refresh operations
Error Handling: Gracefully handle rate limit errors
Organization-Based: All data is isolated by organization
Security Rules: Organization-based security rules enforce data privacy
Multi-Tenant: Secure multi-tenant architecture
OAuth Tokens: Stored securely with organization-based access control
Automatic Refresh: Automatic token refresh when tokens expire
Secure Storage: Tokens encrypted and protected
Read-Only: No modifications to your Salesforce org
Audit Trail: All data access is logged
Data Retention: Clear data retention policies
GDPR Compliant: Follows data protection best practices
For lifecycle analytics to work, Field History Tracking must be enabled on:
Lead Object: Status field
Opportunity Object: StageName field
Navigate to Object Manager → Lead (or Opportunity)
Click Fields & Relationships
Find the Status (Lead) or StageName (Opportunity) field
Click Set History Tracking
Enable history tracking
Save
Retention Period: Typically 18-24 months (varies by Salesforce edition)
Limitations: Historical data beyond retention period is not available
Query Limits: Limited to most recent 25,000 records per analysis
Used for:
Lead/Opportunity/Case status and stage queries
Record count queries (aggregate data)
Field history queries
User and license queries
Describe endpoints
Used for:
Business process metadata
Record type definitions
Flow definitions and metadata
Apex trigger definitions
Layout definitions
Profile metadata
Validation rule definitions and metadata
Standard API: 15,000 calls per 24 hours (default)
Tooling API: 5,000 calls per 24 hours (default)