Table of contents
What are Salesforce triggers?
Triggers let your Fugo screens react automatically instead of only following a fixed schedule. When a trigger fires, it plays a chosen playlist on your selected screens for as long as that content runs, then your screens return to their normal rotation on their own.
Salesforce triggers are a type of service trigger: they fire based on changes to records in a connected Salesforce org. For example, an opportunity moving to Closed Won, a new lead coming in from your website, or a case being escalated. Once you've connected Salesforce, you choose the object you care about and which kinds of changes count, optionally narrow it down with filters, and tell Fugo what to show and where.
Behind the scenes, Fugo listens to Salesforce's Change Data Capture stream for the object you pick. Salesforce publishes a change event the moment a record is created, edited, deleted or restored, and Fugo receives it over a live streaming connection rather than checking Salesforce on a timer. That's why Salesforce triggers react within seconds rather than minutes.
Conceptually, a trigger is just a playlist with a firing rule attached. That's why triggers use the same permissions, and the same content and screen-picking flow, as playlists elsewhere in Fugo; you're not learning a second system, just a new way to decide when a playlist plays.
What you'll need
A Fugo account with playlist permissions
Triggers use the same permissions as playlists (create, edit and publish) rather than a separate "trigger" permission. If you can already build and publish playlists, you have everything you need to build and run triggers too.
At least one connected screen
Your trigger needs a destination screen to play on. You can pair any supported smart TV or media player. See our full compatibility guide here:
If you don't have hardware yet, you can still build and test triggers using the Fugo Chrome extension player or the Fugo browser player, both of which let you preview playback directly from your browser.
Don't have a Fugo account yet? You can start a 14-day free trial here: www.fugo.ai/app
A Salesforce admin, on an edition with API access
Connecting Salesforce involves installing the Fugo package into your org and approving Fugo's access, so you'll need a Salesforce administrator to complete the setup (or to sit with you while you do it).
Because Fugo reads change events through Salesforce's APIs, your org needs API access. In practice that means Enterprise, Unlimited, Performance or Developer Edition. The user who connects Fugo needs the API Enabled permission, plus permission to view the records you want to trigger on and to manage Change Data Capture settings (Fugo switches change tracking on for the objects you choose, as described below).
Connect Salesforce to Fugo
Salesforce is connected once, at the account level, and every Salesforce trigger you build uses that connection. Connecting is a two-part process: first a Salesforce admin installs the Fugo package into your org, then you authorize Fugo to use it.
💡 This connection powers Salesforce triggers. Showing a Salesforce dashboard on screen is a separate feature with its own sign-in setup. See the Salesforce Dashboard App Guide for that.
Step 1: Add the Salesforce connector in Fugo
1. Log into your Fugo account.
2. Click the account icon at the bottom of the left-hand navigation, then choose Settings.
3. Open the Connections tab.
4. Under Not connected, find Salesforce and click Add.
Step 2: Install the Fugo package in Salesforce
Before Fugo can be authorized, its package needs to be installed in your Salesforce org. The package is what registers Fugo as a trusted app in your org. It's configuration only: it doesn't add any code, objects or page layouts to your Salesforce.
After you click Add, Fugo shows you the package install step first:
1. Click the install link. Salesforce's package installation page opens in a new tab. Log in as a Salesforce admin if you're asked to.
2. When Salesforce asks who to install the package for, choose Install for Admins Only. Only the person connecting Fugo needs access to it, so there's no reason to grant it to your wider team.
3. Click Install and wait for Salesforce to confirm the installation is complete.
4. Return to the Fugo tab and continue to the authorization step.
You only need to install the package once per Salesforce org. If it's already installed, continue straight to Step 2.
Step 3: Authorize Fugo
1. Continuing from the install step opens a popup window where you log into Salesforce and approve the access Fugo requests. Log in to the org where you just installed the package and work through Salesforce's consent screen.
2. When authorization succeeds, the popup shows a "Salesforce Connected Successfully" message and closes itself after a few seconds. Fugo detects the new connection automatically and confirms that Salesforce connected successfully.
Your connection now appears under My connections with a status indicator: green means Connected, red means Connection failed and it needs reconnecting.
Fugo keeps the connection alive on its own: when Salesforce's access token expires, Fugo refreshes it automatically in the background. You'd only need to reconnect if that refresh fails, for example because the user who connected Fugo was deactivated or had their access revoked in Salesforce.
If you reconnect the same Salesforce org later, Fugo reuses your existing connection instead of creating a duplicate, so the triggers already built on it keep working.
💡 If your browser blocks the popup, you'll see a message asking you to allow popups for Fugo. Allow them for the site, then click Add again.
💡 Disconnecting Salesforce will stop any triggers built on that connection from firing, so double-check before you disconnect one your team relies on.
Create your Salesforce trigger
1. Go to Triggers in the left-hand navigation, then click New Trigger.
2. This opens the trigger builder on its Select step, showing every available trigger source as a card: Manual, Timer, and any connected HubSpot or Salesforce accounts. A search, filter and sort toolbar helps you find the right one if you have several connections.
3. If Salesforce isn't connected yet, its card is labeled Not connected. Clicking it takes you straight to the Connections tab covered above rather than letting you select it.
4. Click your connected Salesforce card, then Next. This moves you to the Configure step, where you'll choose your object, the kinds of changes to react to, and any filters.
If you have more than one Salesforce connection, each one appears as its own card (e.g. "Salesforce 1" and "Salesforce 2") so you can build triggers against different orgs.
The Configure step has two tabs: Structured, where you build your conditions step by step, and Prompt, where you describe them in plain English. Most triggers are best built on the Structured tab, which is covered first.
Choose your object
The Structured tab walks you through three questions in order, with a Back button if you want to change an earlier answer.
The first is: Which Salesforce object should trigger this?
Click Select an object… to open a searchable list of the objects in your connected org, grouped into three sections:
Standard: Salesforce's built-in objects, such as Opportunity, Lead, Account, Contact and Case.
Custom: objects your team has created in Salesforce.
Platform Event: custom event messages your org publishes.
Because the list is pulled live from your org, it can be long. Start typing in Search objects… to narrow it down; if there are more matches than fit, Fugo tells you how many are being shown and asks you to refine your search.
When you pick an object, Fugo automatically switches on Change Data Capture for it in your Salesforce org, so there's nothing for you to configure in Salesforce Setup.
Your object choice also determines which fields are available to filter on later, so set this first. Changing the object afterwards clears the change types and filters you'd chosen, since they belong to the old object.
💡 Salesforce limits how many objects can have Change Data Capture switched on at once. Many orgs can track up to five objects unless they've purchased Salesforce's add-on for more. If you already track several objects with Change Data Capture, check with your Salesforce admin that there's room for the one you're picking. See Troubleshooting if your trigger doesn't fire.
Choose when it should fire
The second question is: When should this trigger? (select all that apply). Choose one or more of the following:
Created
Fires when a new record of this object is created, for example a new lead arriving from a web form. Created events include the full new record, so filters and message placeholders can use any of its fields.
Updated
Fires when an existing record is edited, for example an opportunity's stage changing. This is the one to use for "when something moves to…" triggers like celebrating a Closed Won deal.
Deleted
Fires when a record is deleted (moved to the Salesforce Recycle Bin).
Undeleted
Fires when a deleted record is restored from the Recycle Bin. This is specific to Salesforce, which lets you bring deleted records back.
You can tick as many as you like. If you leave all four unticked, your trigger's summary shows Any, meaning every kind of change to that object counts.
Add filters
The third question is Property filters (Optional). Filters narrow down which specific changes should count, based on the fields and values in your connected Salesforce org. Without filters, every matching change to the object fires the trigger. Multiple filters are combined with AND: a trigger only fires when every condition you've added is true.
Click Add condition to add a filter row. Each row has three parts:
Property
A searchable dropdown of every field on the object you chose, pulled live from your Salesforce org. That includes custom fields your team has added. Each field is tagged with its Salesforce data type (such as string, currency, picklist or date), which tells you what kind of comparison and value it accepts.
The list also includes fields from related records, shown with an arrow. For example, User → Full Name on an Opportunity is the full name of the opportunity's owner. This lets you filter on something readable, like a rep's name, rather than a Salesforce record ID.
Condition
The comparison to apply: equals, does not equal, contains, does not contain, greater than, at least, less than or at most. The options adjust to the field's type: number, currency, percent and date fields offer equals/does not equal plus the four greater/less-than comparisons, while checkbox and picklist fields only offer equals and does not equal.
Value
How you enter this depends on the field type: a searchable dropdown of the active values for a picklist field (such as Stage or Lead Source), True/False for a checkbox, a date or date-and-time picker for date fields, and free text or a number for everything else.
Lookup fields that point at another record expect that record's 18-character Salesforce ID, which is why it's usually easier to filter on a related field like User → Full Name instead.
You can add as many conditions as you need; each new one is joined to the others with an "AND" divider.
Filtering on opportunity stage
Unlike HubSpot, Salesforce doesn't tie stages to separate pipelines in the same way, so there's no special combined pipeline/stage row. To react to a stage, add a condition on the Stage picklist field and pick the stage from its dropdown, just like any other filter.
Example trigger
Here's what that looks like in practice, for a trigger that celebrates a deal being won:
Object: Opportunity
When: Updated
Filter: Stage equals Closed Won
This trigger fires whenever an opportunity is edited and moved into Closed Won. Edits to opportunities in any other stage won't set it off.
💡 Updated events only include the fields that changed. When a record is edited, Salesforce's change event contains just the fields that were modified in that edit, not the whole record. In the example above, Stage is included because it's the field that changed. But if you added a second filter such as "Amount at least 10000", it would only match when the amount was edited in the same save as the stage. For Updated triggers, filter on the fields whose change you're reacting to. Created events include the full record, so this doesn't apply to them.
Describe your trigger in plain English (Prompt)
If your condition is hard to express with dropdowns, switch to the Prompt tab and describe it in plain English instead, for example "Fire when an opportunity closes as Won". Each time a change comes in for your chosen object, Fugo's AI checks the event against your description and fires the trigger only if it matches.
A few things to keep in mind:
Pick your object first. Prompt mode still needs to know which object to listen to, so choose it on the Structured tab before switching to Prompt.
Use one approach or the other. A trigger uses either structured filters or a prompt, not both. If you'd added filter rows on the Structured tab, remove them before switching to Prompt.
Be concrete. Use specific values and fields rather than vague adjectives. "Opportunities with amount over 50000 that move to Closed Won" works better than "big wins".
Refer to fields Salesforce actually tracks, using the name your org uses for them.
Prefer structured filters when you can. They behave exactly the same way every time, while a prompt is interpreted by AI for each event. Prompt mode is best for conditions the filters can't express.
When a prompt is set, your trigger's summary shows Prompt mode configured.
Once you've finished configuring, you'll see your trigger settings summarized in the trigger details panel to the right. Click Next to move on to content selection.
Choose your display content
Once your trigger conditions are set, move to the Content step to choose what plays when the trigger fires. This is the same content picker used in the playlist builder, with one additional content option: Message.
Media: an image, video, audio or presentation file from your media library.
Studio Content: a slide or slideshow built in the Design Studio.
Dashboards: a dashboard connected through Fugo's TV Dashboards feature.
Apps: a feed from one of Fugo's third-party app integrations.
Your chosen content is added to the content list on the right, where you can configure its settings by clicking the cog icon.
You might choose a pre-configured image or video to play - for this example, we'll select an existing Media item: a "$50K+ Opportunity won" slide:
Message (dynamic text)
HubSpot and Salesforce triggers get one additional option not available elsewhere: Message, a dynamic text slide that fills in details from the Salesforce record that fired it. This is what lets a single template announce every matching deal or case with the right name and amount, instead of you building a new slide by hand for each outcome. It becomes available once you've chosen an object on the Configure step.
To build one, open the Message tab in the content picker and set:
Message template
The text that will display, written in a text box.
Click the property selector next to it to insert a placeholder. Placeholders use the Salesforce field's API name in curly braces: choosing the Stage field, for example, inserts {StageName} at your cursor, and fields from related records use a dotted path, such as {Owner.Name} for the record owner's name. Placeholders pull from the same field list used in your filters, and are replaced with the real value from the event when the trigger fires. For example, "New deal: {Name} — {Amount}" becomes "New deal: Acme Corp — 15000".
If a placeholder's field has no value in the event, it's left blank in the message. Remember that Updated events only include the fields that changed, so on Updated triggers, placeholders work best for the fields that changed in that edit. Created triggers have every field available.
Display duration
How long the message stays on screen, set in milliseconds. It defaults to 10000 (10 seconds) and can be set in steps of one second, with a minimum of one second.
For example:
5 seconds → 5000
10 seconds → 10000
30 seconds → 30000
Click Add message (or Update message if you're editing one) to save it to your trigger's content.
Choose your screens
In the Screens step, choose where this content should play. You can target screens two ways:
By Screen: pick individual screens or screen groups directly, with search built in.
By Property: target dynamically instead. Set a condition on a custom screen property (for example, Region = East), and any screen matching that condition is targeted automatically, including screens you add later that happen to match.
Switching between By Screen and By Property clears whatever you'd already selected in the other mode, so it's worth deciding which approach fits your trigger before filling it in. Both modes support selecting multiple targets.
Your chosen screens will appear in the screens list to the right.
Save and publish your trigger
You can save a trigger as a draft at any point. Going live requires Save and Publish, which stays disabled until your trigger has a source and configuration set, display content chosen, and at least one screen target. You can review your trigger before publishing in the Preview step.
Once published, your trigger is listed as On Standby on the Triggers page: active and waiting for its conditions to be met.
If you edit a published trigger afterward without republishing, it's flagged Outdated until you publish the new version. If the Salesforce connection a trigger uses is removed, the trigger shows a red Not connected badge.
Test your trigger
Before relying on a new trigger, it's worth confirming it fires the way you expect. Make a change in Salesforce that matches your conditions (for example, if your trigger fires when an opportunity moves to Closed Won, move a test opportunity into that stage) and confirm the right content appears on your screen within a few seconds.
If you're using a Message, check that every placeholder filled in as expected. A blank placeholder usually means that field wasn't part of the change event (see Updated events above).
Troubleshooting
"External client app is not installed in this org"
This Salesforce error means the authorization step ran before the Fugo package was installed in the org you logged into. Complete Step 1 in that org, then try connecting again. If you have more than one Salesforce org, make sure you install the package and authorize in the same one.
My connection shows "Connection failed"
Fugo couldn't refresh its access to Salesforce, which usually means the connecting user's access changed (they were deactivated, lost the API Enabled permission, or Fugo's access was revoked in Salesforce). Reconnect from Settings → Connections with an active admin user. Reconnecting the same org keeps your existing triggers.
My trigger never fires
Check the following, in order:
Is the trigger published? It should show On Standby on the Triggers page, not Outdated or draft.
Is Change Data Capture on for your object? In Salesforce Setup, search for Change Data Capture and check that your object appears under Selected Entities. If it's missing, your org may have reached its limit of tracked objects; ask your Salesforce admin to free up a slot or add the object manually.
Do your filters match what's in the event? For Updated triggers, remember that only changed fields are included. Try removing filters temporarily to confirm the trigger fires at all, then add them back one at a time.
Does the object support change tracking? The object list shows every object in your org, but Salesforce doesn't publish change events for every one of them. Standard objects like Opportunity, Lead, Account, Contact and Case, and most custom objects, are supported.
Need more help?
If something isn't working as expected, you're not seeing the Salesforce objects or fields you expect, or you'd like to request support for additional CRM events, reach out anytime.
You can contact us through the chat box in the Fugo CMS or email support@fugo.ai, and our team will help you get everything running smoothly.
Don't have a Fugo account yet? Start a 14-day free trial: www.fugo.ai/app

















