Skip to content

Reduce confusion about how up-to-date the open/clicks info is on the mailing report#36289

Closed
demeritcowboy wants to merge 1 commit into
civicrm:masterfrom
demeritcowboy:mailing-opens
Closed

Reduce confusion about how up-to-date the open/clicks info is on the mailing report#36289
demeritcowboy wants to merge 1 commit into
civicrm:masterfrom
demeritcowboy:mailing-opens

Conversation

@demeritcowboy

Copy link
Copy Markdown
Contributor

Overview

Since the scheduled job was introduced, it's now always out of date.

Before

About once a month I get a support request that "mailings aren't working" since the number of opens is 0, or "too low". Since I keep forgetting that it's updated by a scheduled job now, I always waste time looking into whether mails are actually going, and then eventually hit on the reason.

untitled3

After

Gives the date of the last Mailing.runQueue job run. Clicking the icon runs the Mailing.runQueue job and reloads the page.

untitled4

Technical Details

Comments

@civibot

civibot Bot commented Jul 21, 2026

Copy link
Copy Markdown

🤖 Thank you for contributing to CiviCRM! ❤️ We will need to test and review this PR. 👷

Introduction for new contributors...
  • If this is your first PR, an admin will greenlight automated testing with the command ok to test or add to whitelist.
  • A series of tests will automatically run. You can see the results at the bottom of this page (if there are any problems, it will include a link to see what went wrong).
  • A demo site will be built where anyone can try out a version of CiviCRM that includes your changes.
  • If this process needs to be repeated, an admin will issue the command test this please to rerun tests and build a new demo site.
  • Before this PR can be merged, it needs to be reviewed. Please keep in mind that reviewers are volunteers, and their response time can vary from a few hours to a few weeks depending on their availability and their knowledge of this particular part of CiviCRM.
  • A great way to speed up this process is to "trade reviews" with someone - find an open PR that you feel able to review, and leave a comment like "I'm reviewing this now, could you please review mine?" (include a link to yours). You don't have to wait for a response to get started (and you don't have to stop at one!) the more you review, the faster this process goes for everyone 😄
  • To ensure that you are credited properly in the final release notes, please add yourself to contributor-key.yml
  • For more information about contributing, see CONTRIBUTING.md.
PR commands & links...
  • /rebase <branch-name> will rebase your branch and change the base of the PR.
  • /squash will combine all commits (keeping only the first commit messsage).
  • /port <branch-name> will create a copy of this PR against a different branch.
  • /lintroll will automatically fix linting errors, amending commits as needed.
  • retest this please will rerun the tests and rebuild the demo site.
  • 📖 Review standards
  • 🗒️ Review template (brief or verbose)

➡️ Online demo of this PR 🔗

@civibot civibot Bot added the master label Jul 21, 2026
Comment thread templates/CRM/Mailing/Page/Report.tpl Outdated
Comment thread templates/CRM/Mailing/Page/Report.tpl Outdated
Comment thread templates/CRM/Mailing/Page/Report.tpl Outdated
{if $report.mailing.open_tracking}
<tr><td class="label"><a href="{$report.event_totals.links.opened}&distinct=1">{ts}Unique Opens{/ts}</a></td>
<td>{$report.event_totals.opened} ({$report.event_totals.opened_rate|string_format:"%0.2f"}%)</td>
<td>{$report.event_totals.opened} ({$report.event_totals.opened_rate|string_format:"%0.2f"}%){if $report.event_totals.runQueue_date} {ts 1=$report.event_totals.runQueue_date|crmDate}(as of %1){/ts} <a class="crm-hover-button" id="refresh_opens" title="{ts}Run refresh job now{/ts}" href="#"><i class="crm-i fa-refresh"></i></a>{/if}</td>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<td>{$report.event_totals.opened} ({$report.event_totals.opened_rate|string_format:"%0.2f"}%){if $report.event_totals.runQueue_date} {ts 1=$report.event_totals.runQueue_date|crmDate}(as of %1){/ts} <a class="crm-hover-button" id="refresh_opens" title="{ts}Run refresh job now{/ts}" href="#"><i class="crm-i fa-refresh"></i></a>{/if}</td>
<td>{$report.event_totals.opened} ({$report.event_totals.opened_rate|string_format:"%0.2f"}%){if $report.event_totals.runQueue_date} {ts escape='html' 1=$report.event_totals.runQueue_date|crmDate}(as of %1){/ts} <a class="crm-hover-button" id="refresh_opens" title="{ts escape='html'}Run refresh job now{/ts}" href="#"><i class="crm-i fa-refresh"></i></a>{/if}</td>

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought about that but isn't it the default now? Or is that still pending?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea, pending

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See #36121 - I'm still waiting for feedback from @totten

@colemanw colemanw added the merge ready PR will be merged after a few days if there are no objections label Jul 22, 2026
@demeritcowboy demeritcowboy added needs-work-not-review-ready Submitter required to take action, will be closed after 1-2 weeks in this state and removed merge ready PR will be merged after a few days if there are no objections labels Jul 23, 2026
@demeritcowboy

Copy link
Copy Markdown
Contributor Author

I need to rethink this a little:

  • While the refresh button updates the counts, just calling the api doesn't actually make a scheduled job log entry, so the time displayed doesn't update.
  • I haven't considered what happens if you have access to mailings but not to the api call. Not sure if that's possible but should check.
  • I can see a situation where on some sites sysadmins might not want business admins clicking that button, because it kinda defeats the purpose of having it as a scheduled job if they click it while the mailing is sending. So maybe the refresh button should only show if you have access to run scheduled jobs (administer civicrm system?), which then at least implies a certain amount of sysadmin-y understanding. Without the button it might not reduce support requests, but as long as the "last run" time is there it would make it a much easier support request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

master needs-work-not-review-ready Submitter required to take action, will be closed after 1-2 weeks in this state

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants