Installing, configuring and operating internal announcements inside Salesforce — and reading the numbers that come back.
What an administrator does once, before anybody writes an announcement.
InfoIQ publishes internal announcements to the people who should see them, inside Salesforce, and shows how far each one travelled.
An author builds a multi-page announcement, picks the audiences it is for and where it shows, and publishes it. Readers get a small card on the page they are working on; opening it is their move, never forced on them. They read it, can ask the author a question, and every step is recorded: shown, opened, how far they read.
Nothing leaves your org. Announcements, readings and analytics are records in your own org. There is no external service.
An author writes and publishes announcements. A reader receives them. An audience is a named, reusable set of people, built by an administrator. Placement says where an announcement shows, and is set by its author.
| Requirement | Why |
|---|---|
| Install for Admins Only | Then give each person their permission set group (section 3). Install for All Users gives every profile full access to every InfoIQ object: readers could list who read what, and read their colleagues' questions, through reports and the API. |
| Permission set groups enabled | The three personas are permission set groups. |
| Enterprise, Unlimited or Developer edition | Custom objects, permission sets and Lightning App Builder are required. |
| Administrators can view setup and roles | Whoever builds audiences picks profiles, roles and users with their own access: their profile needs View Setup and Configuration and View Roles and Role Hierarchy. System Administrator has both. |
| Lightning Experience on desktop | Nothing shows in the Salesforce mobile app; what is waiting is offered at the reader's next desktop session. |
Three personas, one permission set group each. Assign the group, never a permission set on its own.
| Group | For |
|---|---|
| Announcement Reader | Everybody who should receive announcements: read them, ask a question, the My Questions tab. No access to the InfoIQ app. |
| Announcement Author | People who write, target, publish and measure: the app, the builder, the Metrics and Readers tabs, reminders, and the Analytics page over their own announcements. They pick audiences by name and never see what is inside one. |
| Announcement Administrator | Everything an author has, plus building audiences, the Critical priority, the diagnostic log, and the Analytics page and Readers tab over every announcement. |
A trusted author can be given the Announcement Critical Priority permission set on top of the Author group, without becoming an administrator.
Audience sizes count the people who hold an InfoIQ seat. With a site licence, that is every active user with a profile; with a per-seat licence, the users you assign one in Setup, Installed Packages, Manage Licenses. A seat holder without the Reader group counts in the audience but receives nothing, so coverage cannot reach 100%.
Readers deliberately hold no access to reading states or questions: the package serves them their own. Granting those objects to readers would let them list who read what and read their colleagues' questions.
Announcements only appear where the Announcement Host is. Put it on every page where you want them seen — or once in the utility bar of an app, which covers all of its pages.
In Lightning App Builder, search for Announcement and drag Announcement Host onto the page. It has no property, takes no room, and shows nothing until a reader has an announcement waiting. It then puts a card at the bottom right of the screen, with Read and Later.
| Where | Behaviour |
|---|---|
| Utility bar | The usual choice. Add it as a utility item and tick Start automatically: it then covers every page of the app, list views included, without anyone opening it. |
| Record page | For announcements about one object, such as cases. |
| Home page | Reaches people as they start their session. |
A page carrying the host twice — on the page and in the utility bar — still shows one card. An announcement placed in a given application (section 7) only appears where that application carries the host.
Read opens the announcement in a window, its pages on the left and the questions on the right. Later puts it off for an hour. Once opened, an announcement is not offered again, unless it is Critical and was not closed, or asks for a confirmation the reader has not given. When several are waiting, Critical ones come first, then the one never shown, then the one shown least recently.
Diagnostic entries of a deleted announcement go with it. To also drop everything older than 30 days, schedule the purge as a user holding Announcement Log Access (the Administrator group does):
System.schedule(
'Announcement Log Purge',
'0 0 3 * * ?',
new infoiq.AnnouncementLogPurgeSchedule()
);
The Readers tab (section 11) names who an announcement targets and where each stands. Two boxes on the Announcement Settings custom setting (Setup, Custom Settings, Manage), set for the organisation, a profile or a user, limit it: Hide reading times keeps names and status but drops the times; Hide reader names shows totals only. Both are unticked at install. What they hide is withheld by the server, not just the screen.
To import announcements from another tool, the user loading the data needs both Skip validations ticked for them on Announcement Settings and the Skip Validations custom permission (System Administrator holds it from the install). Either alone lifts nothing. Their saves then ignore most validation rules and keep the dates they carry. Take both back once the import is done.
Compose the content, decide who receives it, publish it, and answer what comes back.
New announcement asks for a title, then opens the announcement's record page. From there, Open Builder writes the pages, the Targeting tab chooses who and where, and Publish sends it. The first time the builder opens, it asks how to start:
| Mode | What happens |
|---|---|
| From Scratch | One empty page to write in. |
| From another announcement | Copies the pages of one you can edit, with the files they show. The targeting, the settings and the attachments are not copied. |
| From PowerPoint |
Drop a .pptx: each slide becomes one page, exactly as
Salesforce renders it.
|
| Page type | Accepted |
|---|---|
| Rich Text | Written in the builder |
| Image | .png .jpg .jpeg .gif .webp |
| Video |
.mp4 .mov .webm .ogg .m4v, uploaded to Salesforce — not
a link
|
Beside the title, two settings for the whole announcement:
Related files, in the builder, attaches documents readers can open beside the pages.
Standard or Critical. A Critical announcement comes first, is marked in red, and offers no Later. Only the Administrator group, or an author given Announcement Critical Priority, can set it; everyone else sees the priority read only.
Who is one or more audiences, built by an administrator. Where is the announcement's placement, set by its author. Both are in the Targeting tab.
The author picks audiences by name and description. Belonging to any one of them is enough. At least one is required: the tab will not save without it, and the announcement cannot be published without it. All users reaches everyone. Authors never see the criteria behind an audience.
Optional. Each place is an application, a page (Home or record page) and, on a record page, an object — a blank field meaning any. Any place matching is enough. With no place, the announcement shows on every page that carries the host.
Administrators create audiences in the Audiences tab: a
name, a description authors will read, then criteria on
Profile, User, Role, Public Group or Queue, each
In or Not In a set of values. Combine criteria
says whether any criterion is enough, all must hold, or a custom
expression such as 1 AND (2 OR 3). Estimate
audience counts who matches right now. Group and queue membership
follows roles and nested groups, as Salesforce does.
To retire an audience, untick Active: it leaves the authors' list, and the announcements already using it keep it.
Who an announcement reaches is measured when it is published, so the criteria of an audience used by a published or paused announcement cannot change, by any path. Its name and description can. A terminated announcement releases it. An audience cannot be deleted while any announcement still links to it.
| Status | Meaning |
|---|---|
| Draft | Being written. The only status in which content and audiences can change. |
| Published | Delivered between its publication start and end. |
| Paused | Delivered to nobody until Resume. |
| Terminated | Retired for good: it can never be published again, only deleted. |
Publish needs at least one page and one audience, and asks for a window: the start, set to now, and an optional end, neither in the past. The audience size is measured at that moment. A published announcement never returns to Draft: to rework its content, create a new one From another announcement.
Once out of Draft, the pages, the attachments, Readers must confirm and the audiences are frozen. The placement and the end date stay editable: you can move a live announcement to other pages.
Unless Allow questions is off, a reader can ask the author a question from inside the announcement, while it is published.
An answer is final: once sent, neither it nor the question can change. Skip removes a question from the queue without answering or notifying anyone.
What needs attention today, how one announcement went, and what all of them say.
Reach of active announcements lists the live announcements you can edit, with their coverage — the share of the audience who opened it — and how many people were targeted, shown and opened. A badge says when one is Scheduled, Ended or Paused. Unanswered questions is the queue from section 9, with Answer and Skip.
Who the announcement targets today and where each stands — never shown, shown but not opened, left on a page, finished, confirmed — with the times. Show filters, Search a name finds one person, Export CSV downloads the list. Only someone who can edit the announcement, or an administrator, sees it, and never on a draft.
Tell your employees that reading is recorded by name, and who can see it — or show totals only (section 5).
Remind sends a Salesforce notification to everyone the announcement is still owed to: not shown yet, not opened, or not confirmed when confirmation is required. The notification opens the announcement directly. Only someone who can edit it can send one, while it is published, once every 24 hours.
Patterns across all your announcements, deleted ones included, over the period you choose (30 days to 24 months, or custom dates):
An author sees their own announcements; an administrator can choose the whole organisation. Every figure is a count across announcements: the page never names a reader or a team.
Images, videos, decks and attachments are Salesforce files. InfoIQ only ever deletes files that were uploaded into an announcement through it:
Only a file's owner can remove it from an announcement's related files, administrators included. A file someone had before and attached is detached, never deleted.
Errors InfoIQ catches are recorded as Announcement Log rows, readable only with Announcement Log Access. They name no content and no reading. Retention is in section 5.
Before an announcement is deleted, whatever deletes it, InfoIQ writes a snapshot of its figures — counts only, never a name — so the Analytics page keeps counting it. Its pages, readings, questions and Readers list are gone.
InfoIQ ships invocable actions your own Agentforce agent can use. No agent is packaged: add the actions to your agent and its topics.
| For | Actions |
|---|---|
| Readers | Find Announcements I Opened, Read Announcement I Opened, Ask the Author of an Announcement I Opened — only announcements the reader has already opened |
| Authors | Find My Announcements, Get Announcement Figures, Remind Readers Who Have Not Read, Get Unanswered Questions — only announcements the user can edit, and totals only, never a reader's name |
| Both | Get My InfoIQ Role, to decide which actions to offer |
Every action checks access itself, and a refusal says why. On the announcement identifier input, untick Collect data from user: it comes from the find action, not from the person.
| Field or value | Values |
|---|---|
| Status | Draft, Published, Paused, Terminated |
| Priority | Standard, Critical |
| Reading state | Displayed, Opened, Completed, Dismissed |
| Question status | New, Answered |
| Later puts off for | 1 hour |
| Between two reminders | 24 hours |
| Longest question | 1,000 characters |
| Log retention | 30 days, once the purge is scheduled |