Wiki source code of Sending Bulk Messages from the Contract Report
Version 2.1 by Isaac Mejia on 2026/04/30 14:41
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | = Sending Bulk Messages from the Contract Report = | ||
| 2 | |||
| 3 | **Applies to:** Member Manager\\ | ||
| 4 | **Audience:** Club staff, owners, managers\\ | ||
| 5 | **Last updated:** 2026-04-29 | ||
| 6 | |||
| 7 | ---- | ||
| 8 | |||
| 9 | == Overview == | ||
| 10 | |||
| 11 | Member Manager lets you send bulk emails and text messages to members directly from the Contract Report. This is useful when you want to message a specific contract group — for example, all members on a Frozen contract, all members in a specific program, or all members with contracts ending this month. | ||
| 12 | |||
| 13 | The feature uses the same email and SMS infrastructure as the Members tab, so opt-out preferences, communication settings, and personalization tokens all behave the same way. | ||
| 14 | |||
| 15 | ---- | ||
| 16 | |||
| 17 | == Before You Start == | ||
| 18 | |||
| 19 | Make sure your members have: | ||
| 20 | |||
| 21 | * Email addresses on file with the TCPA email opt-in checked (for emails) | ||
| 22 | * Mobile phone numbers on file with the TCPA text opt-in checked (for texts) | ||
| 23 | * Reminders preference set to a value that allows the channel you're sending on: | ||
| 24 | ** **Nothing** → receives neither email nor text | ||
| 25 | ** **Email Only** → receives email only | ||
| 26 | ** **Text Only** → receives text only | ||
| 27 | ** **Both** → receives both | ||
| 28 | |||
| 29 | Members who don't meet these requirements will be filtered out automatically and excluded from the send. The recipient count shown before send already reflects this filtering. | ||
| 30 | |||
| 31 | ---- | ||
| 32 | |||
| 33 | == Step-by-Step == | ||
| 34 | |||
| 35 | === 1. Run a Contract Report Query === | ||
| 36 | |||
| 37 | Navigate to **Reports → Contract Report**. Set your filters (status, program, location, contract dates, etc.) and run the query. | ||
| 38 | |||
| 39 | === 2. Switch to the Detail View === | ||
| 40 | |||
| 41 | The bulk messaging buttons only appear on the **Detail** view, not the Summary view. | ||
| 42 | |||
| 43 | {{info}} | ||
| 44 | If you ran the query on Summary and then switched to Detail, re-run the query on Detail before clicking the messaging buttons. | ||
| 45 | {{/info}} | ||
| 46 | |||
| 47 | === 3. Choose Your Action === | ||
| 48 | |||
| 49 | Four buttons appear at the top of the report: | ||
| 50 | |||
| 51 | |=Button|=What It Does| | ||
| 52 | |**Email All Found**|Sends an email to every member in the current result set| | ||
| 53 | |**Email Selected**|Sends an email to only the members you've checked in the table| | ||
| 54 | |**Text All Found**|Sends a text to every member in the current result set| | ||
| 55 | |**Text Selected**|Sends a text to only the members you've checked in the table| | ||
| 56 | |||
| 57 | {{info}} | ||
| 58 | If a member has multiple contracts that match your query, they will only receive one message — the system deduplicates by member ID before sending. | ||
| 59 | {{/info}} | ||
| 60 | |||
| 61 | === 4. Compose Your Message === | ||
| 62 | |||
| 63 | **For emails:** | ||
| 64 | |||
| 65 | * (Optional) Pick an existing template from the dropdown to pre-fill the subject and body. | ||
| 66 | * Enter a subject line. | ||
| 67 | * Edit the body in the rich text editor. You can use bold, italics, lists, links, and images the same way you would when emailing from a member profile. | ||
| 68 | * Use personalization tokens to customize each message: | ||
| 69 | ** **#FIRST NAME#** — member's first name | ||
| 70 | ** **#LAST NAME#** — member's last name | ||
| 71 | ** **#LOGIN#** — member's portal login | ||
| 72 | |||
| 73 | **For texts:** | ||
| 74 | |||
| 75 | * Enter your message as plain text. | ||
| 76 | * A character counter shows you how long the message is. Stay under 160 characters for a single SMS segment — longer messages will be sent as multiple segments and may cost more. | ||
| 77 | * Personalization tokens (#FIRST NAME#, etc.) work in texts too. | ||
| 78 | |||
| 79 | === 5. Preview the Recipient Count === | ||
| 80 | |||
| 81 | The dialog shows you how many members will actually receive the message after TCPA and reminders filtering is applied. This is your final send count — use it to sanity-check the audience size before you click Send. | ||
| 82 | |||
| 83 | === 6. Send === | ||
| 84 | |||
| 85 | Click **Send**. The message dispatches through MSI's normal email (SendGrid) and SMS (Mobiery) infrastructure. You'll see a confirmation when the send is complete, including the final recipient count. | ||
| 86 | |||
| 87 | ---- | ||
| 88 | |||
| 89 | == Frequently Asked Questions == | ||
| 90 | |||
| 91 | **Why is my recipient count lower than my report results?**\\ | ||
| 92 | The count shown before send is after TCPA and reminders filtering. Members without opt-in or with reminders set to Nothing (or to a channel that doesn't match what you're sending) are automatically excluded. | ||
| 93 | |||
| 94 | **Can I save a draft and come back to it later?**\\ | ||
| 95 | No. The compose dialog resets when you close it. Compose and send in one session. | ||
| 96 | |||
| 97 | **Where do bulk sends show up afterwards?**\\ | ||
| 98 | Each send is logged to the system's message log with the recipient count, channel (email or SMS), and source = contract_report. They are not currently distinguished from member-tab messages in the standard message reports — that's a planned enhancement. | ||
| 99 | |||
| 100 | **Can a member be messaged twice if they have multiple contracts?**\\ | ||
| 101 | No. The system deduplicates by member ID before sending. If a member has 3 matching contracts, they receive 1 message. | ||
| 102 | |||
| 103 | **What happens if a member's phone number or email is invalid?**\\ | ||
| 104 | Bad addresses fail per-recipient — the rest of the send continues normally. The send count returned reflects only successful dispatches. | ||
| 105 | |||
| 106 | **Can I use this on other reports?**\\ | ||
| 107 | Not yet. The Contract Report is the first report wired up to bulk messaging. The backend supports any report; additional reports can be added as a future enhancement. | ||
| 108 | |||
| 109 | **Why don't I see the buttons?** | ||
| 110 | |||
| 111 | * You may be on the Summary view — switch to Detail. | ||
| 112 | * You may not have permission for messaging on this report — check with your account administrator. | ||
| 113 | * You may have switched views without re-running the query — re-run it on Detail. | ||
| 114 | |||
| 115 | ---- | ||
| 116 | |||
| 117 | == What This Feature Does NOT Do (Yet) == | ||
| 118 | |||
| 119 | These items were in the original feature plan but are not in this release: | ||
| 120 | |||
| 121 | * **Pre-send breakdown by contract status** — you don't currently see a breakdown by Active, Frozen, Cancelled, etc. before confirming. | ||
| 122 | * **Multi-contract transparency** — no expandable list showing which members have multiple contracts. | ||
| 123 | * **Reporting differentiation** — message reports don't currently separate contract-based sends from member-based sends. | ||
| 124 | |||
| 125 | If any of these are important to your workflow, please let your CSM know. | ||
| 126 | |||
| 127 | ---- | ||
| 128 | |||
| 129 | == Need Help? == | ||
| 130 | |||
| 131 | If you run into trouble, contact MSI Support and reference **Member Manager Sprint 33 / Bulk Messaging from Contract Report**. |