Skip to content
MotherBot
Core Features

Workflows

When something happens, do these steps — send a message, tag a customer, call another app. This page covers using your customers' details in those steps, and changing how they look.

Using details in a step

Any box with an Insert button can use details from the workflow — the customer’s name, the order total, the time of the booking. Pick one from Insert and it is placed in the box as a value in double curly brackets, like {{contact.firstName}}. When the workflow runs, it is replaced with the real detail for that customer.

Tip

Open What this step can use at the top of a step to see every detail available there, with an example of what each one holds.

Changing how a detail looks

Next to every detail in Insert there is a Change it button. Use it to show money as money, a name in capitals, a date your way, or the date three days later. You pick changes from a list and see the answer straight away — no typing rules.
1

Pick the detail

In any message or box, click Insert, find the detail, and click Change it.
2

Add changes

Search for what you want in everyday words — “money”, “add days”, “capitals”, “timezone”. Add as many as you like; each one works on the result of the one before it.
3

Check the answer, then insert

The Try it box shows the result with an example value, on your business’s clock and currency. Type your own example to test it.
A changed detail looks like this in the box — you can also type it yourself:
  • {{trigger.order.total | add_percent:18 | currency}} — the total plus 18% GST, as money.
  • {{trigger.appointment.startTime | subtract_time:1 day | format_date:dddd, D MMM [at] h:mm a}} — “Wednesday, 14 Oct at 2:30 pm”.
  • {{contact.name | first | title}} — just the first name, with a capital letter.
  • {{trigger.price | times:trigger.quantity}} — another detail can be used as the number.

Note

Dates are always shown on your business’s clock (Settings → timezone) unless you add Change timezone. A date typed like 05/10/2026 is read as 5 October unless your business uses US dollars, where it is read the American way.

Two steps for working things out

  • Do a calculation. Type a sum using details, like {{trigger.order.total}} * 18%. Use + − * / and brackets; round(), min(), max() and abs() work too. The answer appears under the box as you type, and is saved for later steps as {{vars.result}} (or the name you choose). If a detail is empty you choose whether to count it as 0 or stop; if it is words, the step stops and says which detail it was.
  • Change a value. Start with a detail, add changes from the same list as above, and save the result — handy when several later steps need the same changed value.
If/Else rules can change a detail before comparing it, too: click the wand next to the detail, then add How long ago to compare “days since the order” with a number.

Saving records in your CRM

The Zoho CRM, HubSpot and Salesforce steps can create or update a record in any module or object, including your own custom ones. Chatbots can do the same with the Save a record steps.
  • Which module. Your custom modules appear by the names you gave them.
  • What to do. Always create a new record, update the one that already has the same phone or email (otherwise create it), or update a record whose ID you insert from an earlier step.
  • Fields to save. Pick a field and what to put in it. Required fields are listed so you can add them in one tap. A value that comes out empty is skipped, so it never wipes what is already there.

Note

Zoho CRM connections made before 16 October 2026 need to be connected again once to update records in custom modules, Accounts or Deals. Creating records works without it.

Every change: Text

Capitals, spaces, cutting, swapping words, pulling out an email.
ChangeWhat it doesWritten asExample
UPPERCASEMakes the text all capitals.upperpriya → PRIYA
lowercaseMakes the text all small letters.lowerPRIYA@SHOP.IN → priya@shop.in
Title CaseCapitalises the first letter of each word.titlepriya sharma → Priya Sharma
Capital first letterCapitalises only the very first letter.capitalizeyour order is ready → Your order is ready
Trim spacesRemoves spaces from the start and end.trim Priya → Priya
Tidy spacesTurns line breaks and double spaces into single spaces.cleanFlat 4, MG Road → Flat 4, MG Road
First wordJust the first word — a first name from a full name. On a list, the first item.firstPriya Sharma → Priya
Last wordJust the last word — a surname. On a list, the last item.lastPriya Sharma → Sharma
First few wordsKeeps only the first so-many words.words:3Thank you so much for the order → Thank you so
ShortenCuts the text down to a number of characters and adds …truncate:8Blue cotton kurta → Blue co…
First charactersKeeps the first so-many characters, without adding …left:3ORD-2026-0042 → ORD
Last charactersKeeps the last so-many characters.right:49876543210 → 3210
Part of the textTakes characters from a position you choose.part:5,4ORD-2026-0042 → 2026
Add beforePuts some text in front.prepend:#42 → #42
Add afterPuts some text on the end.append:" kg"5 → 5 kg
Find and replaceSwaps every copy of some text for something else. Matches capitals exactly.replace:-,/2026-10-15 → 2026/10/15
Remove textTakes out every copy of some text.remove:"+91 "+91 98765 → 98765
Split into a listBreaks text into a list at a separator — a comma by default.splitred, blue, green → red, blue, green
Digits onlyStrips everything that isn't a number 0–9.digits+91 98765-43210 → 919876543210
Remove web formattingRemoves HTML tags, keeping just the words.strip_html<p>Hello <b>Priya</b></p> → Hello Priya
Make link-friendlyLowercase, with dashes instead of spaces — for links and codes.slugDiwali Sale 2026! → diwali-sale-2026
InitialsThe first letter of each word.initialsPriya Sharma → PS
Hide all but the endHides letters and digits with * except the last few — for phone or card numbers.mask9876543210 → ******3210
Add leading zerosPads with zeros at the front to a fixed length — 42 becomes 00042.pad:542 → 00042
Count wordsHow many words there are.count_wordsIs my order ready → 4
ReverseTurns text, or a list, back to front.reverseabc → cba
Find a numberPulls the first number out of a sentence.extract_numberI want 3 boxes please → 3
Find an emailPulls the first email address out of a message.extract_emailmail me at priya@shop.in thanks → priya@shop.in
Find a phone numberPulls the first phone number (8 to 15 digits) out of a message.extract_phonecall 98765 43210 after 5 → 9876543210
Find a linkPulls the first web link out of a message.extract_urlsee https://shop.in/a1 now → https://shop.in/a1
For a web addressEscapes the text so it is safe inside a link.urlencodered shoes → red%20shoes
Base64Encodes the text as Base64 — some apps ask for this.base64hi → aGk=

Every change: Numbers & sums

Add, take away, multiply, percentages, rounding, money.
ChangeWhat it doesWritten asExample
AddAdds a number. A blank counts as 0, so this works as a counter.plus:501200 → 1250
Take awaySubtracts a number.minus:1001200 → 1100
MultiplyMultiplies by a number — price times quantity.times:3250 → 750
DivideDivides by a number. Dividing by 0 gives a blank.divide:41000 → 250
RemainderWhat is left over after dividing.remainder:517 → 2
Percentage of itThat percentage of the number — 18% of 1,000 is 180.percent:181000 → 180
Add a percentageAdds a percentage on top — 1,000 plus 18% GST is 1,180.add_percent:181000 → 1180
Take off a percentageTakes a percentage off — 1,000 less a 10% discount is 900.less_percent:101000 → 900
RoundRounds to a number of decimal places (0 for a whole number).round:212.345 → 12.35
Round upAlways rounds up to a whole number.round_up4.1 → 5
Round downAlways rounds down to a whole number.round_down4.9 → 4
Without minus signTurns -50 into 50.abs-50 → 50
Never belowIf the number is smaller than this, use this instead.at_least:0-3 → 0
Never aboveIf the number is bigger than this, use this instead.at_most:100140 → 100
Number with commasFormats as a number with thousands separators.number125000 → 1,25,000
Fixed decimalsAlways shows this many decimal places, with thousands separators.decimals:21250 → 1,250.00
MoneyFormats as money in your currency — or type a currency code like USD.currency1250 → ₹1,250.00
Short numberShows big numbers short — 1.2L, 3.4K.compact120000 → 1.2L
1st, 2nd, 3rdAdds st, nd, rd or th.ordinal22 → 22nd
Plain numberReads the number out of text like "Rs. 1,250.50". Blank if there isn't one.to_numberRs. 1,250.50 → 1250.5

Every change: Dates & times

Show a date your way, add days, change the timezone, count days.
ChangeWhat it doesWritten asExample
DateShows a date as DD/MM/YYYY, on your clock.date2026-10-15T14:30:00+05:30 → 15/10/2026
TimeShows the time of day.time2026-10-15T14:30:00+05:30 → 02:30 pm
Date and timeShows both the date and the time.datetime2026-10-15T14:30:00+05:30 → 15/10/2026, 02:30 pm
Date in my own styleShows a date exactly how you want — pick a style or type one like D MMM YYYY.format_date:"ddd, D MMM YYYY [at] h:mm a"2026-10-15T14:30:00+05:30 → Thu, 15 Oct 2026 at 2:30 pm
Add timeMoves a date later — 3 days, 2 hours, 1 month.add_time:3 days2026-10-15T14:30:00+05:30 → 2026-10-18T14:30:00+05:30
Take away timeMoves a date earlier — 1 day before an appointment.subtract_time:2 hours2026-10-15T14:30:00+05:30 → 2026-10-15T12:30:00+05:30
Start of the day / monthJumps to the very start of the day, week, month or year.start_of:month2026-10-15T14:30:00+05:30 → 2026-10-01T00:00:00+05:30
End of the day / monthJumps to the very end of the day, week, month or year.end_of:day2026-10-15T14:30:00+05:30 → 2026-10-15T23:59:59+05:30
Change timezoneShows the date and time in another country's clock. Add a date style after this.timezone:Asia/Dubai2026-10-15T14:30:00+05:30 → 2026-10-15T13:00:00+04:00
Read a date written asReads a date typed in a set style, like 15/10/2026 or 15-Oct-2026, so the other date changes work on it.parse_date:DD/MM/YYYY15/10/2026 → 2026-10-15T00:00:00+05:30
Day of the weekMonday, Tuesday…weekday2026-10-15T14:30:00+05:30 → Thursday
Month nameJanuary, February…month_name2026-10-15T14:30:00+05:30 → October
How long untilHow many days (or hours…) from now until the date.time_until:days2026-10-20 → 5
How long agoHow many days (or hours…) have passed since the date.time_since:days2026-10-10 → 5
Time between two datesHow long from another date to this one — nights of a stay, days to deliver.time_between:2026-10-15,days2026-10-18 → 3
Age in yearsWhole years since the date — a birthday gives an age.age1990-05-20 → 36
In plain words"tomorrow", "in 3 days", "2 hours ago".relative2026-10-16T18:00 → tomorrow
Standard date (for other apps)The full date and time in the standard form other software reads.iso15/10/2026 → 2026-10-15T00:00:00+05:30
YYYY-MM-DDJust the date, in the form spreadsheets and apps read.iso_date2026-10-15T14:30:00+05:30 → 2026-10-15
Unix timestampSeconds since 1970 — some apps ask for dates this way.timestamp2026-10-15T14:30:00+05:30 → 1792054800

Every change: Lists

Join, count, add up, sort, pick one item.
ChangeWhat it doesWritten asExample
Join a listTurns a list into text with a separator between — a comma by default.join:" / "vip, gold → vip / gold
How manyThe number of items in a list, or characters in text.lengtha, b, c → 3
Pick one itemThe item at a position — 1 is the first, -1 the last.item:2Tea, Cup, Saucer → Cup
Only the first fewKeeps the first so-many items of a list.limit:2a, b, c, d → a, b
One detail from eachFrom a list of items, keep one detail of each — every product's name.pluck:name{"name":"Tea","qty":2}, {"name":"Cup","qty":1} → Tea, Cup
Add them upThe total of a list of numbers.sum100, 250, 50 → 400
AverageThe average of a list of numbers.average4, 5, 3 → 4
SmallestThe lowest number in a list.smallest40, 12, 90 → 12
LargestThe highest number in a list.largest40, 12, 90 → 90
SortPuts a list in order — A to Z, or smallest number first.sortpear, Apple, fig → Apple, fig, pear
Remove repeatsKeeps each item once.uniquevip, gold, vip → vip, gold
Remove blanksDrops empty items from a list.drop_blanksa, , b → a, b

Every change: Other

A fallback for blanks, Yes / No, swapping codes for words.
ChangeWhat it doesWritten asExample
FallbackUsed when the value is empty. A real 0 is kept.default:friend(empty) → friend
Yes or NoShows Yes or No — or your own words — for a true / false value.yesnotrue → Yes
Swap codes for wordsTurns codes into words: paid=Paid in full; pending=Not paid yet; *=Other.swap:paid=Paid in full; pending=Not paid yetpending → Not paid yet
As JSONTurns a whole group of values into JSON text, for another app.json{"a":1} → {"a":1}
Read JSONReads JSON text into values you can use — for answers from another app.parse_json{"a":1} → {"a":1}

Date styles

Date in my own style and Read a date written as use these letters. Put ordinary words in [square brackets], like [at].
LettersShows
D · DD · Do5 · 05 · 5th
M · MM · MMM · MMMM10 · 10 · Oct · October
YY · YYYY26 · 2026
ddd · ddddThu · Thursday
h · hh · H · HH2 · 02 · 14 · 14
mm · ssminutes · seconds
A · aPM · pm
Z+05:30