Installing the Package
1. Installing the Package
1.1 Upload Through Module Loader
- Log in to SugarAI as a System Administrator.
- Open Admin → Module Loader.
- Click Choose File, select your zipped package, then click Upload.
- When Fireflies.ai Integration appears in the lower table, click Install.
- Read and accept the readme. The installer runs the
pre_executeandpost_executescripts automatically.
1.2 What the Installer Does
During install:
pre_executelogs the start of installation. It does not delete or modify customizations.- Module Loader copies all files declared in
manifest.php→installdefsinto the livecustom/tree. post_executerunsFirefliesInstaller::installMissingCustomFields(), which adds the five custom fields to Calls and Meetings if they're not already present, and detects/repairs partial-install corruption (metadata row without a column, or vice versa).post_executethen runs Quick Repair & Rebuild to compile the extension framework.
If install fails partway through: The installer is idempotent — re-running the ZIP install will detect already-present fields and only repair missing ones. If a field was created with a column but no metadata row (or vice versa), it removes the broken half and reinstalls cleanly.
2. Post-Install Steps
2.1 Run Quick Repair & Rebuild (Manual)
The installer triggers Quick Repair automatically, but it's worth running it again from the UI to ensure the metadata cache, vardefs, and JS/CSS bundles are consistent:
- Open Admin → Repair → Quick Repair and Rebuild.
- If the page prompts you to execute SQL queries at the bottom, click Execute. These typically add the custom field columns to
calls_cstmandmeetings_cstm. - Wait until you see Done.
2.2 Configure the Fireflies Admin Panel
- Open Admin → Fireflies.ai Integration (in the Administration panel listing).
- Paste your Fireflies API key into the API Key field. The key is encrypted (Blowfish) before being saved into the Administration table.
- Tick Enable Auto Sync if you want the scheduler to run automatically.
- Choose your Target Module — Calls or Meetings. Each transcript becomes one record in this module.
- Optionally tick Create Tasks from Action Items to auto-create Task records from transcript action items.
- Click Save Settings, then Test Connection.
A successful test displays your Fireflies user, email, transcript count, and minutes consumed.
2.3 Create the Scheduler Job
The package registers a scheduler task definition (fireflies_sync_job), but you must add an active scheduler row before it will run on a cadence:
- Open Admin → Scheduler.
- Click Create Scheduler.
- Set Job Name to
Fireflies Sync(or any descriptive name). - Set Job to Fireflies Sync Job (the function
fireflies_sync_jobregistered by the module). - Set Status to Active.
- Set Interval to a cadence that suits your workspace. A common starting point is every 15 minutes (
*/15 * * * *). The integration enforces a 1-second delay between Fireflies API calls and pages up to 1,000 transcripts per run, so 15 minutes is comfortable for most teams. - Save the scheduler.
Sync window vs. scheduler frequency: The scheduler controls how often the sync runs; the Sync Days Back setting (default 7) controls how far back each run looks. A 15-minute scheduler with a 7-day window is a normal setup — every 15 minutes the integration looks at the last 7 days, picks up new transcripts, and skips records that already exist via deduplication on fireflies_id_c.
3. Verifying the Installation
3.1 Use the Diagnostics Page
The package ships a diagnostics page that verifies installation health. Open it directly:
/index.php?module=FirefliesSync&action=diagnostics
It checks each of the following and shows a green ✓, orange ⚠, or red ✗:
- The job function file exists and
fireflies_sync_job()is defined. - The scheduler-task registration extension file exists.
- The compiled extension file is present (this only appears after Quick Repair).
- The SugarAI entry point is loadable.
- The current user is an admin.
- A scheduler row exists in the database for this job.
3.2 Run a Manual Sync
- Open Admin → Fireflies.ai Integration.
- Scroll to Manual Sync and click Sync Now.
- Wait for the JSON result to appear. It reports counts for created, updated, skipped, filtered, errors, and deleted.
- Open Calls (or Meetings if that's your target). Newly synced records will have a non-empty Fireflies ID and Main Points field.
3.3 Verify the Dashlet
- Open any synced record. The Fireflies sentiment field should display a colored value (green, amber, or red).
- Open the record's Intelligence Pane or the relevant View (the dashlet is named Fireflies Transcript).
- The dashlet should show speaker avatars, timestamps, and a search box. Type in the search box to filter sentences.
4. Upgrading From a Prior Version
Module Loader handles upgrades by uninstalling the prior version's metadata then installing the new one. Because the installer is idempotent (it preserves data in custom field columns), an in-place reinstall is safe in most cases. Recommended path:
- Back up the database and the
custom/directory. - Open Admin → Module Loader.
- Locate the prior Fireflies install in the Installed Modules list. Click Uninstall.
- When asked whether to remove tables, select Do Not Remove Tables — this preserves the custom field columns and any Calls/Meetings data that has been synced.
- Upload and install the new ZIP per Section 4.
- Run Quick Repair & Rebuild and re-test the connection.
Why "Do Not Remove Tables": If you choose Remove Tables, the uninstaller drops the fireflies_*_c columns from calls_cstm and meetings_cstm. Any synced transcript data — Main Points, Sentiment, Action Items, Fireflies URL, Fireflies ID — is lost. Choose this option only when you intend to wipe the integration permanently.
5. Uninstalling
- Disable the Fireflies scheduler in Admin → Scheduler (set status Inactive).
- Open Admin → Module Loader, find the Fireflies module, and click Uninstall.
- Choose Remove Tables or Do Not Remove Tables based on whether you want the synced data preserved (see note in Section 7).
- The installer runs
pre_uninstall(which removes the five custom fields cleanly viaDynamicField->deleteField) andpost_uninstall(which runs Quick Repair & Rebuild). - Run Quick Repair & Rebuild manually once more for good measure.
What Is Removed
- All five custom fields and their columns on Calls and Meetings (only if you chose Remove Tables, or if the field was added cleanly by the installer).
- The
fireflies_sentiment_listdropdown. - All files under
custom/modules/FirefliesSync/, the entry-point registry, the scheduler-task definition, the dashlet view, and the REST API class. - Vardef extension files under
custom/Extension/modules/Calls/Ext/Vardefs/and the equivalent for Meetings.
What Is NOT Removed
- API key and other settings stored in the config table under category
fireflies. To purge them, run:
DELETE FROM config WHERE category = 'fireflies';
- The scheduler row in the
schedulerstable — delete it manually. - Any Tasks created from action items. Delete via the Tasks list view if needed.
6. Troubleshooting
| Symptom | Likely Cause and Fix |
|---|---|
| Module Loader rejects the ZIP | manifest.php must be at the root of the ZIP, not inside a wrapper folder. Re-zip from inside the project directory. |
| "acceptable_sugar_flavors" error | Your edition is not ENT/ULT/SELL/SERVE. The integration cannot install on PRO or lower. |
| Custom fields don't appear after install | Run Quick Repair & Rebuild; if the page shows pending SQL, execute it. If still missing, open the diagnostics page and check the post_execute log. |
| Test Connection returns 401 / 403 | API key invalid or revoked. Re-paste it from Fireflies → Settings → Developer Settings. |
| Test Connection returns a network error | The Sugar server cannot reach api.fireflies.ai. Open the host on your egress proxy / firewall. |
| Sync Now returns 0 created / 0 updated | Either no new transcripts in the last 7 days, or every transcript was filtered. Drop log level to debug temporarily and watch sugarcrm.log for filter reasons. |
| Scheduler exists but never runs | The OS-level cron isn't installed or not running. Confirm crontab -l shows the SugarAI cron entry. |
fields_meta_data shows ghost rows after a botched install |
Reinstall — the installer detects this state and repairs it automatically. |
If you're still stuck, see the Admin Guide's troubleshooting section, which covers runtime issues like deduplication, participant linking, and filter behavior.
Done! If the diagnostics page is fully green and Sync Now reports created or updated records, your installation is complete. Read the Admin Guide next to fine-tune sync filters, scheduling, and logging.