Validates AFLS Mobile app configuration to prevent issues. Use when user is preparing for mobile deployment, troubleshooting mobile sync issues, or asking about DB Schema / mobile cache configuration.
Scanned 9/19/2026
Install to Claude Code
npx -y skills add SalesforceLabs/afls-for-claude --skill afls-mobile-validation --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Afls Mobile Validation?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/salesforcelabs-afls-mobile-validation)More formats (shields.io, HTML) on the badges page.
---
name: afls-mobile-validation
description: Validates AFLS Mobile app configuration to prevent issues. Use when user is preparing for mobile deployment, troubleshooting mobile sync issues, or asking about DB Schema / mobile cache configuration.
---
For mobile validation rules and guidance, call `search_afls_knowledge({ query: "mobile validation configuration" })` to get sourced documentation.
# AFLS Mobile Configuration Validator
You help validate AFLS mobile app configuration to prevent sync and functionality issues.
## Automated Validation
**IMPORTANT:** When validating mobile configuration, use the `audit_mobile_config` tool to run automated checks. This tool validates against known common issues and provides specific resolution steps.
### Quick Validation Groups
| Scenario | Command |
|----------|---------|
| User can't log in | `audit_mobile_config({ group: 'mobile-login-check' })` |
| Before go-live | `audit_mobile_config({ group: 'pre-deployment' })` |
| Sync not working | `audit_mobile_config({ group: 'sync-troubleshooting' })` |
| Full health check | `audit_mobile_config({ group: 'full-mobile-audit' })` |
### Check Trigger Handlers & Admin Console Settings
If validation reveals missing features or misconfiguration:
- `list_trigger_handlers()` — Check if required trigger handlers are enabled
- `toggle_trigger_handler({ handlerName: "...", active: true })` — Enable/disable a handler
- `list_admin_settings({ category: "..." })` — View Admin Console settings for a category
- `update_admin_setting({ recordId: "...", fields: { IsActive: true } })` — Update a setting
### Diagnosing Specific Errors
If the user reports a specific error message, use `diagnose_afls_issue` to find matching validation rules:
```
diagnose_afls_issue({ symptom: 'Device sync transaction record was not found' })
```
---
## Mobile Cache Status
**USE THE `check_mobile_cache_status` TOOL** to check cache status. Do NOT write SOQL queries manually.
```
check_mobile_cache_status()
```
**Objects that DO NOT EXIST (never query these):**
- `MobileMetadataCache__c`, `MobileApplicationDetail`, `lsc4ce__MobileMetadataCache__c` - NONE OF THESE EXIST
The correct object is `LifeSciMobileMetadataRecord` but the tool handles this for you.
### Key Fields (for reference)
| Field | Description |
|-------|-------------|
| `Name` | Name of the DB Schema record |
| `ProfileId` | Profile this schema is assigned to |
| `Status` | Active, Inactive, New, Published, Processing, etc. |
| `IntegrationStatus` | Error, New, Ok, Pending |
| `IntegrationErrorCode` | Error code if sync failed |
| `IntegrationErrorMessage` | Error details if sync failed |
## Admin Console Location
**Admin Console > Mobile > Object Metadata Cache Configuration**
This is where admins create and manage DB Schema records through the UI.
> **Tip:** For managing individual DbSchema records (create, update, delete, SOQL filters), see the `afls-db-schema` skill.
## Required DB Schema Records by Feature
Each AFLS feature requires specific DB Schema records to be active for mobile:
### Field Email
- Email template records
- Email fragment records
- Consent/subscription records
### Next Best Action (NBA)
- NBA configuration records
- Action records
### Next Best Customer (NBC)
- NBC settings records
- Provider/Account related records
### Lists & Filters
- Actionable list records
### App Alerts/Notifications
- Alert configuration records
### Visit Management
- Visit records
- Product discussion records
- Sample records (if sampling enabled)
### Sample Management
- Sample limit records
- Sample inventory records
- Sample transaction records
## Validation Workflow
When validating mobile configuration:
1. **Check setup status:**
```
Use check_afls_setup to verify org connection
```
2. **Query all mobile metadata records:**
```sql
SELECT Id, Name, Status, IntegrationStatus, IntegrationErrorCode, IntegrationErrorMessage
FROM LifeSciMobileMetadataRecord
ORDER BY Name
```
3. **Identify issues:**
- Records with `IntegrationStatus = 'Error'`
- Records with `Status != 'Active'` and `Status != 'Published'`
- Missing records for enabled features
4. **Check profile assignments:**
```sql
SELECT Id, Name, Profile.Name, Status
FROM LifeSciMobileMetadataRecord
WHERE ProfileId != null
```
5. **Report findings:**
- List all configured schemas
- Flag any errors or inactive records
- Identify potentially missing schemas based on enabled features
## Common Mobile Issues
### Data Not Appearing on Mobile
**Query to run:**
```sql
SELECT Id, Name, Status, IntegrationStatus
FROM LifeSciMobileMetadataRecord
WHERE Name LIKE '%<feature>%'
```
**Fix**: Ensure Status is Active/Published and IntegrationStatus is Ok
### Mobile Sync Failures
**Query to run:**
```sql
SELECT Id, Name, IntegrationErrorCode, IntegrationErrorMessage
FROM LifeSciMobileMetadataRecord
WHERE IntegrationStatus = 'Error'
```
**Fix**: Review error messages and correct configuration
### Feature Not Working for Specific Profile
**Query to run:**
```sql
SELECT Id, Name, Profile.Name, Status
FROM LifeSciMobileMetadataRecord
WHERE Profile.Name = '<profile_name>'
```
**Fix**: Ensure required schemas are assigned to the profile
## Mobile Sync Objects
For deeper sync troubleshooting, also query:
| Object | Purpose |
|--------|---------|
| `DeviceSyncSummary` | Summary of synced data per device |
| `DeviceSyncTransaction` | Individual sync transactions |
| `DeviceSyncTransactionLog` | Sync logs with details |
| `DeviceSyncTransactionRecord` | Individual synced records |
**Example - Recent sync errors:**
```sql
SELECT Id, Name, Status, ErrorDescription
FROM BatchJob
WHERE Status = 'Failed' OR Status = 'CompletedWithFailures'
ORDER BY StartTime DESC
LIMIT 10
```
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!