Admin & User Guide

Sylo — Admin & User Guide

This guide covers Sylo Rollups, Sylo Scheduler, and Sylo Lookup—managed packages that share Sylo Base (utilities, session helper, shared LWCs). Use the sections for the products you installed.

For AppExchange Security Review, publish a public HTTPS copy of this guide at a stable URL; suggested paths and a checklist live in PUBLIC_DOCUMENTATION.md.

Shared requirements

  • Salesforce edition with Lightning Experience.
  • My Domain enabled on the org (required for Remote Site Settings and Tooling API features used by Rollups and Lookup for trigger deployment and related setup).
  • Sylo Base must be installed (or upgraded) before or with each Sylo product that declares a dependency on it. Check the installer or AppExchange listing for the minimum Base version.

Assign the product-specific admin permission set (see each section below) to users who configure the app.


Sylo Rollups

Declarative rollup summaries from child records onto parent records (SUM, COUNT, AVG, filters, realtime / scheduled / on-demand).

Requirements

  • Sylo Rollups Admin permission set and access to the Sylo Rollups app.

Installation

  1. Install Sylo Base (if not already installed) and Sylo Rollups from the AppExchange or your install link.
  2. Assign Sylo Rollups Admin to admins who manage rollups.
  3. Open the Sylo Rollups app from the App Launcher.

Post-install setup (Remote Site)

For Realtime and Scheduled rollups and for auto-deploying triggers on custom objects, the org must allow callouts to its own Salesforce domain:

  1. Open Sylo RollupsSetup tab.
  2. Copy the My Domain URL (e.g. https://yourcompany.my.salesforce.com).
  3. Go to SetupRemote Site Settings and add a site whose URL matches that domain exactly.
  4. Return to the Sylo Rollups Setup tab and confirm status is configured.

Standard-object rollups that ship with triggers can work without this; custom-object trigger deploy and some tooling features require it.

Creating a rollup

  1. Rollups tab → New Rollup.
  2. Step 1 — Source — Child object, parent object, relationship field, field to aggregate, aggregate function, optional filters.
  3. Step 2 — Target — Target field on the parent (create new field for custom objects where supported).
  4. Step 3 — Filters — Optional refinements.
  5. Step 4 — ActivateRealtime (trigger on child), Scheduled (batch queue), or On Demand (manual / Flow). Save and activate.

For custom child objects, Realtime/Scheduled may require a one-time trigger deploy; follow in-app instructions, then Mark as Done in Object Support.

Object Support

Use the Object Support tab to see which custom objects have triggers deployed, deploy or remove support, and manage realtime coverage.

Running rollups

  • Realtime — On child DML when triggers are present.
  • Scheduled — Queue processed by RollupBatchJob (schedule in Setup → Apex Classes → Schedule Apex if you use global scheduling outside the app).
  • On DemandRun Now on a row, or the Run Rollup invocable action in Flow.

Health, jobs, and audit

  • Health — Definitions that may need attention.
  • Job Monitor — Batch and scheduled activity.
  • Audit Log — Definition create/update/delete and activation changes.

Templates and CSV

  • Templates — Start from common patterns.
  • Import CSV / Export CSV — Bulk definition backup and migration.

Licensing (Rollups)

  • Free tier — Limited number of active definitions (see in-app sidebar).
  • Premium — Higher or unlimited limits per your AppExchange entitlement.

Use Upgrade / AppExchange links in the app (configured per your publisher). After purchase, follow your vendor’s activation steps.

Help and support (Rollups)

  • In-app Help and Support use the URLs configured in the package (default: Sylo support site).
  • This repository’s docs/ folder may contain additional technical notes.

Sylo Scheduler

Orchestrates Apex jobs from Custom Metadata: cron schedules, job groups, dependencies (run order), retries, batch size, and execution history.

Requirements

  • Sylo Scheduler Admin permission set and the Sylo Scheduler app.
  • Sylo Base installed per package dependency.

Scheduler does not require a Remote Site to your org for core features (definitions, schedule/unschedule, run now, logs).

Installation

  1. Install Sylo Base (if needed) and Sylo Scheduler.
  2. Assign Sylo Scheduler Admin to job administrators.
  3. Open Sylo Scheduler from the App Launcher.

Dashboard overview

  • All Jobs — Definitions grouped (e.g. by job group). Row actions: Run Now, Schedule, Unschedule, View History, Dependencies, Edit.
  • Templates — Start new definitions from patterns.
  • Health — At-a-glance status for definitions.
  • Active Jobs — Salesforce CronTrigger / async context relevant to scheduled work.
  • HistoryScheduler_Log__c execution lines (status, duration, messages).

Creating or editing a job

  1. Click New Job (or Edit on a row) to open the wizard.
  2. Set label, developer name, Apex class (must implement Schedulable or Database.Batchable<SObject>).
  3. Cron — Expression and human-readable frequency where applicable.
  4. Group — Optional Job Group for bulk Run group / Schedule group / Unschedule group actions in the header or UI.
  5. Dependencies — Comma-separated developer names of jobs that must succeed today before this job runs (enforced by the engine).
  6. Retries, batch size, timeout, notification email — As shown in the wizard.
  7. Save. Activate the definition in metadata (or via your packaging process) so it appears as Active in the app.

Batch-only classes

If the Apex class implements only Database.Batchable (not Schedulable), the product wraps it with a SchedulerBatchWrapper schedulable at schedule time so System.schedule can still run it.

CSV import and export

On All Jobs, use Export CSV / Import CSV to back up or bulk-load definitions (align column headers with the template exported from the app).

Help and support (Scheduler)

Sidebar Help and Support use the same listing/support configuration pattern as other Sylo apps (publisher URLs).


Sylo Lookup

Auto-populates lookup fields on source records by matching values to target records (exact, contains, starts with, ends with), with optional filters and execution modes.

Requirements

  • Sylo Lookup Admin permission set and the Sylo Lookup app.
  • Sylo Base installed per package dependency.
  • Remote Site to the org’s My Domain (same pattern as Sylo Rollups) if you use Object Support trigger deployment and related tooling.

Installation

  1. Install Sylo Base (if needed) and Sylo Lookup.
  2. Assign Sylo Lookup Admin.
  3. Open Sylo Lookup from the App Launcher.
  4. Complete Remote Site setup if the Setup tab (or Object Support) indicates it is required.

Creating a lookup rule

  1. Lookup RulesNew Lookup Rule or start from Templates (e.g. Lead → Account, Contact → Account).
  2. Step 1 — Objects & lookup — Source object, target object, lookup field on the source, optional description.
  3. Step 2 — Match — Source and target match fields, Match Type, behavior when multiple targets match.
  4. Step 3 — Filters — Optional SOQL-safe filters (source and/or target).
  5. Step 4 — Options — Developer name, label, Execution Mode (On Demand, Scheduled, Realtime), overwrite, fallback, Active. Save.

Running lookups

  • Run Now — Up to 2,000 source records in one synchronous path.
  • Run in background — Enqueues LookupBatchJob for full volume.
  • Schedule — Use in-app scheduling where available, or Setup → Apex Classes → Schedule Apex with LookupSchedulable (pass the definition developer name if your version supports it, or follow in-app help).
  • FlowRun Lookup invocable (category Sylo Lookup): definition developer name and source record IDs.

Realtime and Object Support

For Realtime, the source object needs a deployed trigger (managed or via Object Support). Use the Object Support tab to add custom objects and deploy triggers where supported.

History and settings

  • HistoryLookup_Log__c lines (matched/updated counts, mode, messages).
  • Settings — Batch size and related options where exposed.

Licensing (Lookup)

Free tier limits may apply to the number of active rules; upgrade flows point at the Sylo Lookup AppExchange listing when configured.

Help and support (Lookup)

  • Help tab links to the publisher documentation URL; Support in the sidebar uses the same support base URL as other Sylo apps when configured.

Uninstall

  1. Disable schedules — Remove or abort scheduled jobs for RollupBatchJob, LookupSchedulable, LookupBatchJob, and any Sylo Scheduler–related cron jobs you created.
  2. Deactivate definitions you no longer need (rollups, lookup rules, scheduler jobs).
  3. Uninstall packages in an order allowed by Salesforce (dependent packages first if required): e.g. Sylo Rollups, Sylo Scheduler, Sylo Lookup, then Sylo Base if nothing else depends on it.

Custom metadata and package custom objects are removed with each package. Fields you created on standard or custom objects (e.g. rollup targets) remain until deleted manually.


Document scope

This file is the in-repo admin guide. For AppExchange and Security Review, host a public copy at a stable URL and set helpUrl / listing links to that URL when you publish.


Appendix: Running Apex tests (developers)

To run all test classes shipped with Sylo Rollups, Sylo Scheduler, and Sylo Lookup (plus Rollups’ install/uninstall tests), use an org where Sylo Base and those three packages are deployed—ideally a scratch org or packaging org. Other installed packages can enqueue unrelated work during tests and skew results (for example queueables that recurse).

sf apex run test --test-level RunSpecifiedTests \
  --class-names SyloPostInstallScriptTest SyloErrorHandlerTest RollupCodeGeneratorTest RollupInvocableActionTest \
    RollupSchedulableTest RollupBatchJobTest SyloUninstallScriptTest RollupTriggerHandlerTest RollupControllerTest \
    RollupServiceTest SyloLicenseServiceTest RollupFilterBuilderTest RollupMetadataDeployServiceTest \
  --class-names SchedulerControllerTest SchedulerServiceTest \
  --class-names LookupBatchJobTest LookupLicenseServiceTest LookupServiceTest LookupControllerTest \
    LookupTriggerHandlerTest LookupInvocableActionTest \
  --code-coverage --result-format human --wait 20

Add -o YOUR_ORG_ALIAS if target-org is not set. For per-class line coverage, add --detailed-coverage.

Sylo Connect in the same org

If Sylo Connect is installed, its Account (and other) triggers no longer enqueue realtime Jira sync jobs during Apex tests by default, and ConnectSyncQueueable does not chain retries in test context. That keeps Rollups, Lookup, and Scheduler tests independent of Connect. Production behavior is unchanged. Connect’s own unit tests still enqueue and run ConnectSyncQueueable explicitly. Advanced Connect tests that must assert trigger-driven enqueue can set ConnectTriggerService.allowRealtimeDispatchInTest = true (see ConnectTriggerService.cls).