Make Functions
7 min
the make functions app is a visual way to handle data transformations within your previously, make iml (integromat markup language) functions were only accessible inside mapping fields now, these functions are available as standalone modules behavior with an empty input behavior with an empty input if the value mapped to an input field is empty, null, or missing, the module outputs an empty result without stopping the scenario no error is raised to handle missing values explicitly, use the if the value mapped to an input field is empty, null, or missing, the module outputs an empty result without stopping the scenario no error is raised to handle missing values explicitly, use the general > if empty operation to supply a fallback, or add a filter before the module to verify the upstream value exists key benefits visual chaining you can connect individual functions as separate modules that can be chained together in the scenario builder simplified usage the entry barrier is lower for non technical users who may find traditional function setup challenging zero cost execution using make functions modules costs zero operations and zero credits they are free to use, just like standard iml functions high discoverability you can find functions within the scenario builder under the make functions app, categorized by type (string, math, date, etc ) familiar interface each module uses the standard make mapping interface with clearly defined inputs and outputs credit usage because these modules act as visual wrappers for standard iml logic, which is already free to use within mapping fields, they do not consume any operations or credits make functions modules you can use the following module to build your transform use this module when you need to chain multiple transformations — for example, trim, replace, and encode a string — without linking separate modules for each step field description initial value the starting value for the pipeline (required) steps one or more operation steps (required) from the operations field, you can select operations listed below type examples of operations text to upper case, to lower case, capitalize, start case, trim whitespace, substring, replace, split, join, format number, format date number absolute value, length, index of, round up, round down, round, truncate, sum, average, length (array), date difference array split, slice (array), reverse (array), sort (array), add (array) date now, yesterday, tomorrow, add days, set hour, parse date type compatibility each operation requires a specific input type and produces a fixed output type if a step’s expected input type does not match the output type of the preceding step, the scenario fails immediately make generates a type mismatch error and no steps are executed common incompatible pairs to avoid split → absolute value split → absolute value split outputs an array; absolute value expects a number length → uppercase length → uppercase length outputs a number; uppercase expects text sum → split sum → split sum outputs a number; split expects text operations that accept any input type such as get, if, if empty, switch, to string, to number, to boolean, array first, array last, or that generate their own value regardless of the previous step (now, yesterday, tomorrow) are always compatible in a chain operations that accept any input type such as get, if, if empty, switch, to string, to number, to boolean, array first, array last, or that generate their own value regardless of the previous step (now, yesterday, tomorrow) are always compatible in a chain output field type result the output of the last step steps an array containing the operation name and result for every step, it is useful for debugging intermediate values example normalize an invoice total use the transform functions module to turn a localized amount from an email, pdf parser, or form submission into a clean accounting friendly number in your scenario builder, add make functions > transform module in the initial value field, map the amount from the previous module, or add a value for example € 1 234,567 click add item to add the first step in the operation field, select trim whitspace (text) click add item to add the second step in the operation field, select replace (text) in the pattern field, enter /\[^0 9, ]/g leave the replacement field empty click add item to add the third step in the operation field, select parse number (text > number) in the decimal separator field, enter , click add item to add the fourth step in the operation field, select round (number) set decimal places to 2 click add item to add the fifth step in the operation field , select format number (number > text) set the decimal places to 2 , decimal separator to , and thousands separator to , click save run the module the module outputs 1,234 57 the steps output shows the intermediate result after each operation so you can inspect where the value changed array functions use the array functions module to get elements, sort, filter, merge, transform arrays, extract keys, and convert between arrays and objects select an operation from the dropdown list, then fill in the fields that appear operation description additional fields get first element returns the first element get last element returns the last element array length returns the number of elements slice returns a portion of the array start (required), end reverse returns the array in reverse order sort sorts the array order (asc/desc, default asc), key (property name for arrays of objects) shuffle returns the array in random order contains returns true if the array contains the given value value (required) add element appends or prepends a value value (required), position (beginning/end, default end) remove element removes the element at a given 0 based index index (required) merge arrays concatenates two arrays second array (required) remove duplicates removes duplicate values key (property name for deduplication in arrays of objects) flatten flattens a nested array depth (number of nesting levels to flatten) get keys returns the keys of a collection as an array object (required) map values extracts a single property from an array of objects key (property name, required) array to collection converts an array of key value pairs into a collection key field (default key ), value field (default value ) collection to array converts a collection into an array of key value pairs object (required) output field type result array, collection, or primitive — depends on the operation example extract active customer email addresses from a contact list use the array module to output an array of email addresses from the active contacts in a list input array \[ { "name" "alice", "email" "alice\@example com", "status" "active" }, { "name" "bob", "email" "bob\@example com", "status" "inactive" }, { "name" "clara", "email" "clara\@example com", "status" "active" } ] use a json parser along with an array aggregator to parse the array in your scenario builder, add make functions > array functions module in the operation field, select map values in the array field, map the email array from the previous module in the key field, enter email in the key to filter by field, enter status in the values to filter field, enter active click ok the module transforms the list of objects into an array containing only the email addresses, for example alice\@example com, clara\@example com crypto functions use the crypto functions module to use hash and encode operations such as md5, sha 1, sha 256, sha 512, and base64 encoding operation description additional fields md5 returns the md5 hash of the input sha1 returns the sha 1 hash provide an hmac key to compute hmac sha1 hmac key, key encoding (utf 8/hex/base64, default utf 8), output encoding (hex/base64, default hex) sha256 returns the sha 256 hash provide an hmac key to compute hmac sha256 hmac key, key encoding (utf 8/hex/base64, default utf 8), output encoding (hex/base64, default hex) sha512 returns the sha 512 hash provide an hmac key to compute hmac sha512 hmac key, key encoding (utf 8/hex/base64, default utf 8), output encoding (hex/base64, default hex) base64 encode encodes the input as base64 output field type result text example verify a webhook signature use the crypto module to verify a webhook signature input data hello hmac key secret in your scenario builder, add make function > crypto functions module in the operation field, select sha256 in the data field, map the raw webhook request body from a previous module in the hmac key field, map or enter your webhook secret set key encoding to utf 8 set output encoding to hex click save the module outputs the hmac sha256 (88aab3ede8d3adf94d26ab90d3bafd4a2083070c3bcce9c014ee04a443847c0b) signature you can compare this value against the signature sent in the webhook headers using a filter date functions use the date functions module to add or subtract time, set specific date components, calculate differences, and format or parse dates select an operation from the dropdown, then fill in the fields that appear operation description additional fields now returns the current date and time yesterday returns yesterday's date date (defaults to today if omitted) tomorrow returns tomorrow's date date (defaults to today if omitted) add seconds adds seconds to a date use a negative number to subtract seconds (required) add minutes adds minutes to a date minutes (required) add hours adds hours to a date hours (required) add days adds days to a date days (required) add months adds months to a date months (required) add years adds years to a date years (required) set second sets the seconds component (0–59) value (required) set minute sets the minutes component (0–59) value (required) set hour sets the hours component (0–23) value (required) set day of week sets the day of the week value day name or number 0–6 (required) set day of the month sets the day of the month (1–31) value (required) set month sets the month value month name or number 1–12 (required) set year sets the year value (required) date difference returns the difference between two dates start date (required), end date (required), unit (days/hours/minutes/seconds, default days) format date formats a date as a string date (required), format (required, e g yyyy mm dd ) parse date parses a date from a text string text (required), format (required, e g yyyy mm dd ) output field type result date or number, depending on the operation format tokens token description example yyyy 4 digit year 2026 mm 2 digit month (01–12) 3 dd 2 digit day (01–31) 18 hh hour in 24 hour format 14 mm minutes 5 ss seconds 9 example calculate the number of days until a deadline use the date module to calculate the number of days until a deadline in your scenario builder, add make function > date functions module in the operation field, select date difference in the start date field, click the calendar icon and set to now ; or map the current date from a previous module in the end date field, map the deadline date from the previous module (for example, a due date from a project management app) in the unit field, select days click ok the module outputs the number of days between today and the deadline if the result is a negative number, the deadline has already passed general functions use the general functions module to use control flow and type conversion operations such as conditional logic, switch statements, property access, and type conversions operation description additional fields get returns the value at a dot notation path inside an object or array object (required), path (required, e g user address city) if returns one of two values based on a condition condition (required), then (required), else if empty returns a fallback value when the input is empty or null value (required), fallback (required) switch maps a value to a result from a list of cases value (required), cases (array of key/result pairs, required), default omit keys returns an object with the specified keys removed object (required), keys (comma separated, required) pick keys returns an object containing only the specified keys object (required), keys (comma separated, required) to string converts any value to a string value (required) to number converts a value to a number value (required) to boolean converts a value to a boolean value (required) output field type result any — matches the type returned by the selected operation example assign a priority from a plan name use the general functions module to return a priority label based on a value from a previous module input value enterprise in your scenario builder, add make functions > general functions module in the operation field, select switch in the value field, map the plan name field from the previous module in cases field, enter the following free > low pro > standard enterprise > high touch in the default value field, enter standard click save the module outputs high touch math functions use the math functions module to round off, truncate, find minimum and maximum values, calculate sums and averages, and format numbers select an operation from the dropdown list, then fill in the fields that appear operation description additional fields absolute value returns the non negative value of a number round up rounds up to the nearest integer round down rounds down to the nearest integer round rounds to the nearest value precision (decimal places, default 0 ) truncate removes the fractional part without rounding digits (decimal places to keep, default 0 ) maximum returns the largest number from a list values (array of numbers, required) minimum returns the smallest number from a list values (array of numbers, required) sum adds all numbers in a list values (array of numbers, required) average returns the arithmetic mean of a list values (array of numbers, required) median returns the median of a list values (array of numbers, required) parse number parses a number from a text string text (required), decimal separator (default ) format number formats a number as a string with custom separators number (required), decimal points (default 2 ), decimal separator (default ), thousands separator (default , ) output field type result number example format a price for display use the math module to convert a raw numeric value into a standard currency format in your scenario builder, add make functions > math functions module in the operation field, select format number in the number field, map the price value from your source module (e g , 1234 5) set decimal points to 2 set decimal separator to set thousands separator to , click ok the module will output the formatted string 1,234 50 string functions use the string functions module to transform case, extract substring, replace patterns, split and join text, and encode/decode urls operation description additional fields to upper case converts all characters to uppercase to lower case converts all characters to lowercase capitalize capitalizes the first letter of the first word start case capitalizes the first letter of every word trim white space removes leading and trailing whitespace text length returns the number of characters substring extracts a portion of the string start (required), length index of returns the 0 based position of a substring; returns 1 if not found search (required), start index (default 0 ) replace replaces a pattern with a replacement the pattern accepts regex pattern (required), replacement (required), replace all (default false) split splits a string into an array using a separator separator (required) join joins an array of strings into a single string array (required), separator (default , ) contains returns true if the string contains the given substring substring (required), case sensitive (default true) encode url url encodes the text decode url decodes a url encoded string escape html escapes html special characters (<, >, &, ") strip html removes all html tags and returns plain text output field type result text (or number for length and index of) example process text with make functions in this example, you will use make functions to automatically trim whitespace and capitalize a string within your scenario in your scenario builder, add make functions > string functions module in the operation field, select trim whitespaces in the text field, map the value from your source module click ok add a second make functions > string functions module following the first one in the operation field, select capitalize in the text field, map the output of the first text module click ok the second module will output the trimmed and capitalized string templates you can look for functions templates in make's template gallery https //www make com/en/templates , where you'll find thousands of pre created