Each bot's URL, what its message says, what to map, and what can be deleted. Work top to bottom.
WotNot have confirmed it: when an outbound bot maps a value to a contact variable, it is written to the contact record of whoever is in the phone field, overwriting whatever was there.
An alert goes to the pastor but is about a member. So mapping a member's name into first_name writes it onto the pastor's record, replacing their own, every send. Hence bday_first_name and visitor_first_name. They are not clutter, they are what keeps two people's records apart.
Where a message is about its own recipient, like the birthday wish, the plain name is correct.
Each URL below identifies one bot and never changes while that bot exists. Manna is wired to these exact addresses.
So if a bot is named or mapped wrongly, open it by its URL and correct it. Deleting and recreating gives a different URL, which breaks the wiring on our side and needs a code change to fix.
These URLs each trigger a real, charged send. Keep this page private.
Some of these overwrite somebody's record or send the message to the wrong person. The rest are Meta rules: a body may not begin or end on a variable, and two variables may never sit side by side with nothing between them. Do these before wiring anything.
| Template | Change this | To this | Why | |
|---|---|---|---|---|
| Birthday alert | first_name and last_name | → | bday_name | Two variables side by side, which Meta rejects. One field holding the full name fixes it and stops the recipient's own name being overwritten. |
| Visitor alert | name and visitor_last_name | → | visitor_name | Same, two names side by side. One field. name is also MChat's own system field and must never be used. |
| Visitor alert | Phone | → | visitor_whatsapp | phone decides who receives the message. Left as is, the alert goes to the visitor instead of the team. |
| Need alert | heading in the body | → | heading as a text HEADER | A body may not start on a variable. Moving heading to the header component fixes it. |
| Need alert | closing_line at the bottom | → | closing_line moved up | It sat directly against what_they_shared with nothing between, which Meta rejects. It now follows the opening line, which also reads better since a crisis note appears early rather than buried. |
| Teach nudge | theme_line and reflection_or_heart_line | → | teaching_thought | Two variables side by side. One field. |
| Need alert | the closing line, Please reach out to them | → | remove it | The closing_line variable already ends with an instruction to reach out, so the fixed footer said it twice. The variable is the one that changes with urgency, so the fixed line goes. |
| Event full, to the member | {event_capacity}} | → | ({event_capacity}) | The closing bracket is missing, which breaks the message. |
Each box gives the bot's URL so you find the right one, the message with its variables in place, then what to map on the trigger block. Left is what Manna sends, right is the MChat contact variable. They match on purpose.
phone is not part of the message, which is why it appears in none of the wording below. It tells MChat which contact this run belongs to, which decides both who receives the WhatsApp and whose record everything else is written to.
Never map anything else into phone. A member's number there sends the alert to the member instead of the team, and creates a contact for them.
Where a message is about somebody else, their number goes in its own field, member_phone or visitor_whatsapp, and is printed inside the message so the team can reach them.
https://outbound.m-chat.ai/api/v1/outbound/7hW7HieBSSjU134516910537gCIvAIbn/campaign/kack7j2NkAde091319016786YO3fHjjJHappy birthday, first_name Today the whole church_name family is celebrating you. We thank God for your life, and we are praying that this new year overflows with His goodness and peace. Have a beautiful day. You are known, loved, and prayed for.
| Manna sends | Map to | Sample value for Meta | ||
|---|---|---|---|---|
| phone | → | phone | 27828565536 | the member. This decides who receives it. |
| first_name | → | first_name | Thandeka | safe, the message is about its own recipient |
| church_name | → | church_name | Grace Community |
https://outbound.m-chat.ai/api/v1/outbound/7hW7HieBSSjU134516910537gCIvAIbn/campaign/6w8cvD7ywvTc09161595282063EIcTuEBirthday Today Good morning from Manna. bday_name celebrates their birthday today. A warm birthday wish has already been sent to them at 8:00 on behalf of church_name. WhatsApp: member_phone A personal message or call from you would make it extra special.
| Manna sends | Map to | Sample value for Meta | ||
|---|---|---|---|---|
| phone | → | phone | 27828565536 | the team member. This decides who receives it. |
| bday_name | → | bday_name | Thandeka Mokoena | CHANGED. Was first_name and last_name side by side, which Meta rejects. Now one field. |
| church_name | → | church_name | Grace Community | |
| member_phone | → | member_phone | 27821234567 | the birthday person's number, printed in the message |
https://outbound.m-chat.ai/api/v1/outbound/7hW7HieBSSjU134516910537gCIvAIbn/campaign/TXUAJfGGiNEf081223643506Ktd0b2OoNew Visitor Notification, church_name A new visitor has registered through Manna. Name: visitor_name WhatsApp: visitor_whatsapp Birthday: visitor_birthday How can we help them feel more connected: visitor_help_now Please reach out and welcome them personally.
| Manna sends | Map to | Sample value for Meta | ||
|---|---|---|---|---|
| phone | → | phone | 27828565536 | the team member. This decides who receives it. |
| church_name | → | church_name | Grace Community | |
| visitor_name | → | visitor_name | Thandeka Mokoena | CHANGED. Was two name fields side by side, which Meta rejects. Now one field. |
| visitor_whatsapp | → | visitor_whatsapp | 27821234567 | the visitor's number, printed in the message |
| visitor_birthday | → | visitor_birthday | 14 March 1992 | |
| visitor_help_now | → | visitor_help_now | Prayer or pastoral care, Join a Life Group |
https://outbound.m-chat.ai/api/v1/outbound/7hW7HieBSSjU134516910537gCIvAIbn/campaign/sDorfacFpgeH093344951823a6s9wQIeThis template has a text header as well as a body. The header holds one variable, heading.
Sample value: New request. On a crisis it carries Urgent care needed instead, which is what makes an urgent alert look different in a notification list.
The header exists because a message body is not allowed to begin with a variable.
Someone at church_name has reached out for support. closing_line Name: member_name WhatsApp: member_phone What they shared, in their own words: what_they_shared Thank you.
Add a Visit Website button labelled Respond.
URL: https://reply.getmanna.ai/{{1}}
Bind the button's variable to member_phone. Sample value for submission: 27821234567.
The button cannot link to wa.me directly, Meta rejects that. reply.getmanna.ai forwards to the member's chat, so tapping Respond opens a conversation with them.
| Manna sends | Map to | Sample value for Meta | ||
|---|---|---|---|---|
| phone | → | phone | 27828565536 | the recipient. This decides who receives it. |
| heading | → | heading | New request | HEADER, not body. A text header, so the body does not start on a variable. |
| church_name | → | church_name | Grace Community | |
| closing_line | → | closing_line | This came through as a request for prayer. | MOVED UP, it used to sit against what_they_shared, which Meta rejects. |
| member_name | → | member_name | Thandeka Mokoena | safe, nothing inbound writes this |
| member_phone | → | member_phone | 27821234567 | the member's number, printed in the message |
| what_they_shared | → | what_they_shared | Please pray for my mother, she is in hospital |
https://outbound.m-chat.ai/api/v1/outbound/7hW7HieBSSjU134516910537gCIvAIbn/campaign/5uW24owZx5XP100658313011YbYzNgpwCare report church_name, period. number_of_people Most common: most_common_themes Every one of them was responded to at the time. This is the pattern view only. No names and no details are kept in it.
| Manna sends | Map to | Sample value for Meta | ||
|---|---|---|---|---|
| phone | → | phone | 27828565536 | the recipient. This decides who receives it. |
| church_name | → | church_name | Grace Community | |
| period | → | period | the last three months | |
| number_of_people | → | number_of_people | 23 people reached out for care | |
| most_common_themes | → | most_common_themes | family and health |
https://outbound.m-chat.ai/api/v1/outbound/7hW7HieBSSjU134516910537gCIvAIbn/campaign/5eKEaNTrMwhf091204726113onlDtfsdEvent full, church_name Wonderful news. The event_name has filled up, capacity_phrase spots taken. Anyone else who tries to join from here is counted, so your weekly report will show you the demand you could not see before.
| Manna sends | Map to | Sample value for Meta | ||
|---|---|---|---|---|
| phone | → | phone | 27828565536 | the recipient. This decides who receives it. |
| church_name | → | church_name | Grace Community | |
| event_name | → | event_name | Men's Breakfast | |
| capacity_phrase | → | capacity_phrase | 40 |
https://outbound.m-chat.ai/api/v1/outbound/7hW7HieBSSjU134516910537gCIvAIbn/campaign/5BPUtWB464ch0918080288676jrFERYiWeekly events report, church_name Your week at a glance: events_phrase, signups_phrase. Reply to this message and Manna will walk you through the details, sign-up lists, contact numbers, and who tried to join after an event filled.
| Manna sends | Map to | Sample value for Meta | ||
|---|---|---|---|---|
| phone | → | phone | 27828565536 | the recipient. This decides who receives it. |
| church_name | → | church_name | Grace Community | |
| events_phrase | → | events_phrase | 3 events | |
| signups_phrase | → | signups_phrase | 41 sign-ups |
https://outbound.m-chat.ai/api/v1/outbound/7hW7HieBSSjU134516910537gCIvAIbn/campaign/5xmUqgfuVeQW145301391980Et7XuxusGreetings, The event_name at church_name is now full (event_capacity). The team has been notified.
| Manna sends | Map to | Sample value for Meta | ||
|---|---|---|---|---|
| phone | → | phone | 27821234567 | the member. This decides who receives it. |
| church_name | → | church_name | Grace Community | |
| event_name | → | event_name | Men's Breakfast | |
| event_capacity | → | event_capacity | 40 of 40 |
https://outbound.m-chat.ai/api/v1/outbound/7hW7HieBSSjU134516910537gCIvAIbn/campaign/6AV9tZW4DMhA104851653240odbNrTm7Filling up, church_name The event_name is event_percent full, event_spots_taken of event_capacity spots taken. Still time to promote it, or to plan for the space you will need.
| Manna sends | Map to | Sample value for Meta | ||
|---|---|---|---|---|
| phone | → | phone | 27828565536 | the recipient. This decides who receives it. |
| church_name | → | church_name | Grace Community | |
| event_name | → | event_name | Men's Breakfast | |
| event_percent | → | event_percent | 75% | |
| event_spots_taken | → | event_spots_taken | 30 | |
| event_capacity | → | event_capacity | 40 |
https://outbound.m-chat.ai/api/v1/outbound/7hW7HieBSSjU134516910537gCIvAIbn/campaign/525keJPyt5Y9145555411948fViIuptfThis week's message at church_name is ready. a_short_line_about_the_message Open WhatsApp any time to ask about it.
| Manna sends | Map to | Sample value for Meta | ||
|---|---|---|---|---|
| phone | → | phone | 27821234567 | the member. This decides who receives it. |
| church_name | → | church_name | Grace Community | |
| a_short_line_about_the_message | → | a_short_line_about_the_message | Living Beyond Restraint, by Pastor Keith |
https://outbound.m-chat.ai/api/v1/outbound/7hW7HieBSSjU134516910537gCIvAIbn/campaign/3VNHTwjifVkx150037505248IcVyERTXGreetings from church_name, A thought from this week: teaching_thought Reply any time if you would like to talk it through.
| Manna sends | Map to | Sample value for Meta | ||
|---|---|---|---|---|
| phone | → | phone | 27821234567 | the member. This decides who receives it. |
| church_name | → | church_name | Grace Community | FIXED. The wording now uses it, so the mapping has somewhere to land |
| teaching_thought | → | teaching_thought | grace is not a reward for the strong, it is a gift for the willing | CHANGED. Was theme_line and reflection_or_heart_line side by side, which Meta rejects. Now one field. |
https://outbound.m-chat.ai/api/v1/outbound/7hW7HieBSSjU134516910537gCIvAIbn/campaign/5Ak7dhiRMYaZ1059283788962IftXghuManna alert Something has gone wrong and needs a look. Church: church_name What failed: what_failed Error: error_detail When: happened_at This may be ongoing, so check before assuming it was a one off.
| Manna sends | Map to | Sample value for Meta | ||
|---|---|---|---|---|
| phone | → | phone | 27828565536 | whoever on the Manna team receives it. One send per person. |
| church_name | → | church_name | Grace Community | which church it happened at |
| what_failed | → | what_failed | route_need endpoint | which part broke |
| error_detail | → | error_detail | Monday API returned 500 | enough to act on without opening Cloudflare |
| happened_at | → | happened_at | 3 September, 12:45 | when |
https://outbound.m-chat.ai/api/v1/outbound/7hW7HieBSSjU134516910537gCIvAIbn/campaign/7op2KXKLDjkh115716818957psv7zNDMI noticed what you said, and I want to make sure you have this.
If you are in immediate danger, please call the SADAG helpline on 0800 567 567. They are there day and night, and it is free.
You matter, and church_name is here for you.
You are not alone.| Manna sends | Map to | Sample value for Meta | ||
|---|---|---|---|---|
| phone | → | phone | 27821234567 | the member. This decides who receives it. |
| church_name | → | church_name | Grace Community |
Nothing uses them. The three welcome report bots, Bot 4, Bot 5 and Bot 6, can go with them.
| Variable | Why it can go |
|---|---|
| period_label | Retired welcome report |
| count_phase | Retired welcome report |
| names_joined | Retired welcome report |
| support_breakdown | Retired welcome report |
| top_request | Retired welcome report |
| math_answer | A test from May |
These look finished with, but search each name in the bot builder and in every function's code box before removing it. A variable can be used inside a function and show nowhere on the canvas.
| Variable | Where it came from |
|---|---|
| prayer_for | Early needs design, replaced by need_alert |
| request | Early needs design |
| shared_for | Early needs design |
| occasion | Early needs design |
| names | Early needs design, generic name so check carefully |
| date | Early needs design, generic name so check carefully |
| fast_type | Early needs design |
| duration | Early needs design |
| prayer_focus | Early needs design |
| message_summary | Early needs design |
| request_summary | Early needs design |
| cv_lib_done | From the library work, check nothing reads it |
| cv_lib_reply | From the library work, check nothing reads it |
Some look unused because they only appear inside function code. Removing one breaks something quietly, with no error.
| Variable | Why it stays |
|---|---|
| welcome_done | Decides new versus returning. Deleting it breaks every conversation. |
| first_name, last_name, visitor_birthday, visitor_support | Written by the registration flow onto the member |
| cv_event_id, cv_event_name, cv_intent, cv_party | Bound in the events flow mapping |
| reply | Holds the worker's answer for both HTTP blocks |
| tempeventname, tempintent, temppartysize | Read inside the booking function. Invisible on the canvas. |
| tn_details, tn_hint, tn_urgent | Read inside the needs function. Invisible on the canvas. |
| visitor_first_name, visitor_last_name, visitor_whatsapp, visitor_help_now | Visitor alert |
| bday_first_name, bday_last_name | Birthday alert, new |
| visitor_support_text | The member's support choices joined into one comma-separated line so the HTTP block can send them. Written by the JavaScript block after the Welcome Flow. Never set this by hand. |
| church_name, member_phone, member_name, heading, what_they_shared, closing_line | Live templates |
| event_name, capacity_phrase, events_phrase, signups_phrase, event_capacity, event_percent, event_spots_taken | Event templates |
| period, number_of_people, most_common_themes | Care report |
| a_short_line_about_the_message, theme_line, reflection_or_heart_line | Teach templates, planned not dead |
| lead_stage, church_size, plan_interest, source, referred_by, first_contact_date, outbound_d2_sent, outbound_d5_sent, outbound_d10_sent, onboarding_submitted, registration_status_check, church_keyword, rollout, confirmed_status, listchoice, lookup_found, lookup_results | The sales and onboarding side, a different product |
| flow_church_name, flow_church_contact, flow_plan, flow_sponsor_name, flow_sponsor_wa | The onboarding flow |
| what_failed, error_detail, happened_at | Manna alert, our own monitoring |
| phone, name, and anything MChat created | System fields, not yours to delete |
Pick a moment, work down the list on WhatsApp, and type what actually happened in the last column. Write what you saw rather than only pass or fail, since the wording is usually where the problem is. When you are done, press Download and send Ransley the file.
| # | Send this | What should happen | What actually happened |
|---|---|---|---|
| READ THIS FIRST. Short page, about 40 minutes, all on THE SON CENTRE, 031 023 2317. It checks what changed yesterday: sermon questions, bookings, and a few fixes. Start every tab in a BRAND NEW chat, since a new chat is where one of yesterday's bugs showed up. | |||
| Note the TIME of each question you ask. If anything is wrong, Ransley needs the time to find it in the logs. | |||
| # | Send this | What should happen | What actually happened |
|---|---|---|---|
| WHY THIS MATTERS: members can now ask about Pastor Keith's sermons by date, topic or series. Only a few of his sermons have dates so far: 16 May 2023, 23 May 2026 and 24 June 2026. Keith's first new sermon goes in this Sunday. | |||
| 1 | what was preached on 24 June | Restraint to Responsibility, by Pastor Keith Padayachee, with a short summary. It must NOT start with "I could not find" | |
| 2 | what was last Sunday's message | It should say plainly it does not have last Sunday's sermon yet, and name Restraint to Responsibility as the most recent. It must not pretend June was last Sunday | |
| 3 | what did Pastor Keith preach on 23 May | Restraint in Development | |
| 4 | has the pastor preached about restraint | It should find the restraint sermons and name them with their dates | |
| 5 | what does the church teach about Sonship | A teaching answer from his Sonship series. Note whether it says where the answer came from | |
| 6 | what was preached on 16 May | 16 May 2026 has no sermon. It may offer 23 May as the closest. It must NOT jump back to 2023 as if that were close | |
| # | Send this | What should happen | What actually happened |
|---|---|---|---|
| WHY THIS MATTERS: yesterday Manna told you that you were not booked when you were. We found and fixed it. Use your usual number, the one with bookings on it. | |||
| 1 | New chat: what am I booked for | It must list your actual bookings. Check them against the events screen | |
| 2 | book me for ASOM | ASOM costs money and is registered on the organiser's website. It must give the date, the R2000 fee, Sandton and the registration link, and must NOT say you are booked | |
| 3 | Then: what am I booked for | ASOM must NOT appear in your bookings | |
| 4 | please cancel all my bookings | If this has been fixed, it should list your bookings and ask which one, or all. If it still says "I could not find that event", write that down, it may not be done yet | |
| 5 | what is ASOM | If fixed, it should give ASOM's dates, fee and link first, not only background about ApostolicGate. Write down exactly what it says | |
| # | Send this | What should happen | What actually happened |
|---|---|---|---|
| WHY THIS MATTERS: Manna kept saying it was holding people before the Lord. We rewrote the rule a different way. Also Manna should no longer use dashes. | |||
| 1 | Please pray for my mother, she is in hospital | It must NOT say holding, lifting, praying, carrying her, or before the Lord. It should name your mother and then the fixed prayer sentence. An alert must arrive | |
| 2 | Fresh chat: things are hard at home | Sympathy is fine, "that sounds heavy". It must not claim to be holding or carrying what you shared | |
| 3 | Look back over all today's replies | Any dashes in Manna's replies? Write down any you see | |
| # | Send this | What should happen | What actually happened |
|---|---|---|---|
| DO THESE ON MONDAY 28 SEPTEMBER, after you have entered Pastor Keith's Sunday sermon on your sermon page. This is the test that decides whether Keith's leaders can start using it. | |||
| 1 | what was last Sunday's message | It must now answer with Sunday 27 September's actual sermon, title and summary | |
| 2 | what did the pastor say about [a theme from Sunday's notes] | It should answer from that sermon | |
| 3 | Is it now ready for Keith's leaders to use for a week? | Your honest yes or no, and why | |
| # | Send this | What should happen | What actually happened |
|---|---|---|---|
| 1 | Anything that felt worse than yesterday? | Even if it technically passed |
A variable can only go when it appears in no template, no bot block, and no function code box. All three, not just the canvas.
This list covers what we could see. If you find something not mentioned here, leave it and ask.