listAnnouncements
List the announcements already sent in this beta project, with their text, sender, audience tags, and reach. recipientsCount includes managers who received a courtesy copy; view tracking exists only for testers, so compute open rates as viewedCount out of testerRecipientsCount, never out of recipientsCount. Every announcement is always listed with these counts. Recipient lists are opt-in because they grow with testers times announcements: pass recipientsSince (for example 7 days ago) and each announcement sent at or after it also carries testerRecipients, the testers it reached who are still in this beta project (userId, name, username, and viewed: whether they opened it). Managers who received a courtesy copy are not in it, and a tester removed from the beta project drops out of it and of testerRecipientsCount and viewedCount. audienceTags lists the tag names the announcement targeted; an EMPTY list means no tag targeting, which covers both a send to all testers and a send to a hand-picked list of testers. Which of the two it was is not stored anywhere and cannot be worked out afterwards: the beta's membership moves and a hand-picked list can contain every tester, so do not present a guess about how recipients were chosen as fact. date is when the announcement was created/sent. attachmentUrl is a time-limited download link for the human user and differs on every call; hasAttachment is the stable fact.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | ID of the beta project to query. Get valid IDs from the listProducts tool. | |
| recipientsSince | No | Optional: ISO 8601 date-time. Announcements sent at or after it also carry testerRecipients; omit it for counts only. |