Track who confirmed a ticket and store that info in the ticket or reports

Infos:

  • Used Zammad version: 6.2.5
  • Installation type: docker-compose
  • OS: Ubuntu 22.04 LTS (host)
  • Browser: Chrome (latest)

Expected behavior:

  • When an agent clicks the “Confirm Receipt” macro, we want to:
    1. Set a custom field (“Receipt Confirmation”) to “Received”
    2. Automatically track who confirmed the receipt
    3. Ideally, store this information in a visible place in the ticket or in the “Confirmed by” custom field
    4. Use this info later in statistics or reports

Actual behavior:

  • The macro works and sets the field correctly
  • A trigger is supposed to add a public note using #{user.email} or #{article.from}, but:
    • The note shows #{user / no such object} or similar (variable not resolved)
    • The same happens in the custom field
  • The user’s identity is only visible inside the email body sent by the trigger
  • It’s not accessible from ticket fields or in CSV reports

Steps to reproduce:

  1. Create a macro used by all agents
  2. Add a trigger that adds a public note or fills a field with #{user.email} / #{article.from}
  3. Click the macro, and check what is written in the note or field

Question:

Is there a supported way in Zammad to automatically track which agent clicked the macro, and store that info:

  • in a ticket field (e.g. “Confirmed by”), or
  • in a resolved note (that can be used for reporting)?

We would like to avoid creating one macro per user or using API scripts.

Thanks in advance!

Actual behavior:

Steps to reproduce the behavior:

I think you’re following the wrong path and this might become a problem for you in the future. Why is the ticket history not sufficient for your needs? When you open a ticket and click on “Ticket” there’s a history feature showing all changes made.

Thank you for your suggestion — yes, we do check the ticket history when needed and we know it shows all changes.

However, in our real-world use case, we need to make the confirmation explicit and visible directly inside the ticket, for both internal audits and non-technical users.

Specifically, when an agent sets the custom field “Receipt Confirmation” to “Received”, we need to clearly log:
(or just the name is fine too).

The reason is:

  • We create monthly reports based on which agents confirmed receipt
  • Some people in the company only read the ticket content, not the history panel
  • We need this confirmation to be clearly readable, printable, and exportable
  • It helps track responsibility over internal communications without extra clicks

I believe the article.from attribute only works when the note represents an email. For this you’d have to change your trigger from creating a note to sending a mail. In our case the confirmation happens by either setting a ticket owner or changing the ticket’s state to open (in case the owner has been set already but the state is new). You can however create a custom field in your ticket object and set that in your macro/trigger. Did you perhaps use #{user.email} in the subject part of your trigger’s note creation? You’re also using the terms “note” and “email” synonymously. If you add a custom field to the ticket, you should be able to create reports by using these. I hope that helps.

Thanks again for your support — we’ve implemented your suggestions and now have a clearer direction.

Here’s what we are trying to achieve:

We’re simulating an internal broadcast system where:

  1. A user sends an internal communication using a ticket template (group: Communications, status: open)
  2. A trigger sends an email notification to all recipients, instructing them to confirm receipt
  3. Each recipient clicks a macro that:
    • Sets a custom field “Receipt Status” to “Received”
    • Adds a tag “received”
  4. A trigger detects that the confirmation happened and:
    • Fills another custom field “Confirmed by” with #{user.email} (or name)
    • Sends an email back to the sender indicating who confirmed the communication
    • Optionally, adds a note to the ticket for tracking

This gives us a clean way to:

  • Track receipt status
  • Identify which user confirmed (via a custom field)
  • Report on confirmations using the Zammad reporting engine

Our final question:
We’d like to simulate a sort of internal “read receipt” mechanism, so that when someone confirms (by clicking the macro), a mail is sent back to the sender with who confirmed the message — without requiring manual replies or incoming emails.

Is this a valid approach, or is there a better way to achieve this?

Thanks again for your help — this is already working well!

If you want this receipt-field to contain the information for each recipient, there’s no way I know on how to easily achieve this. Also the tag can only be set for the ticket, not per user. Again, the “confirmed by” field won’t be different than the ticket owner, will it? Creating that note should be possible with a macro/trigger, but i get from your description that you already achieved this part. You can easily send mails using triggers and I’d be using the #{ticket.owner.email} field for this.