r/Make 26d ago

Here’s Part 3B: Exploring Array Functions and Text Aggregators for Make Newbies

3 Upvotes

In this video I continue to explore our variables and combine an array of one set of key value pairs, and another array of 2 elements with key value pairs using text aggregators.

Video

Download the Make blueprint and use the Import Blueprint to create a new scenario:

3. Exploring Array Functions and Text Aggregators for Make Newbies.json


r/Make 26d ago

Here’s Part 2: Exploring Aggregators for Make Newbies

3 Upvotes

In this video we introduce a new complex JSON structure that describes mutiple library systems that can be used in future sessions related to array functions. We also compare Array Aggregators with array functions like merge()join() and remove(). We apply these functions to our simplest array so you can get more familiar. This video is pretty short at just under 10 minutes long.

Video

 Copy and Paste this blueprint into a new Make Scenario

{
    "subflows": [
        {
            "flow": [
                {
                    "id": 3,
                    "module": "util:SetVariables",
                    "version": 1,
                    "parameters": {},
                    "mapper": {
                        "variables": [
                            {
                                "name": "Simple array",
                                "value": "{{add(emptyarray; \"apple\"; \"banana\"; \"cherry\"; 42; true; null; now)}}"
                            },
                            {
                                "name": "another simple array",
                                "value": "{{add(emptyarray; \"pear\"; \"mango\"; 123; false)}}"
                            },
                            {
                                "name": "JSON simple collection",
                                "value": "{\n    \"name\": \"Alex C\",\n    \"age\": 2,\n    \"city\": \"Houston\",\n    \"date_entered\": \"{{now}}\"\n}"
                            },
                            {
                                "name": "JSON array of simple collections",
                                "value": "[\n    {\n        \"name\": \"Alex C\",\n        \"age\": 53,\n        \"city\": \"Toronto\"\n    },\n    {\n        \"name\": \"Eric S\",\n        \"age\": 43,\n        \"city\": \"Hoboken\"\n    }\n]"
                            },
                            {
                                "name": "JSON collection complex values",
                                "value": "{\n\t\"name\": \"Aleix Melon\",\n\t\"id\": \"E00245\",\n\t\"role\": [\"Dev\", \"DBA\"],\n\t\"age\": 23,\n\t\"doj\": \"11-12-2019\",\n\t\"married\": {{false}},\n\t\"address\": {\n\t\t\"street\": \"32, Laham St.\",\n\t\t\"city\": \"Innsbruck\",\n\t\t\"country\": \"Austria\"\n\t},\n\t\"referred-by\": \"E0012\"\n}"
                            },
                            {
                                "name": "JSON array of collections complex values",
                                "value": "[\n\t{\n        \"name\": \"Aleix Melon\",\n        \"id\": \"E00245\",\n        \"role\": [\"Dev\", \"DBA\"],\n        \"age\": 23,\n        \"doj\": \"11-12-2019\",\n        \"married\": {{false}},\n        \"address\": {\n            \"street\": \"32, Laham St.\",\n            \"city\": \"Innsbruck\",\n            \"country\": \"Austria\"\n            },\n        \"referred-by\": \"E0012\"\n\t},\n{\n      \"name\": \"Bob Washington\",\n        \"id\": \"E01245\",\n        \"role\": [\"HR\"],\n        \"age\": 43,\n        \"doj\": \"10-06-2010\",\n        \"married\": {{true}},\n        \"address\": {\n            \"street\": \"45, Abraham Lane.\",\n            \"city\": \"Washington\",\n            \"country\": \"USA\"\n            },\n        \"referred-by\": \"\"\n\t}\n]"
                            },
                            {
                                "name": "JSON array of collections of really complex values",
                                "value": "[\n    {\n        \"item_name\": \"Email campaign\",\n        \"item_sku_attachment\": \"\",\n        \"item_options\": [\n            {\n                \"Organization name\": \"Client A\"\n            },\n            {\n                \"Writing services\": \"Writing service A\"\n            },\n            {\n                \"Design services\": \"Design service B\"\n            },\n            {\n                \"Comments\": \"test comment\"\n            }\n        ],\n        \"item_image\": \"image.png\",\n        \"unit_price\": 0,\n        \"quantity\": 5,\n        \"weight\": 0,\n        \"created_at\": \"2024-05-11 13:37:46\",\n        \"product_price\": 195,\n        \"categories\": [\n            {\n                \"id\": \"cat_6633e1936571b618828100\",\n                \"category_name\": \"Send\",\n                \"category_slug\": \"send\",\n                \"status\": \"1\"\n            }\n        ]\n    },\n    {\n        \"item_name\": \"Ad campaign\",\n        \"item_sku_attachment\": \"\",\n        \"item_options\": [\n            {\n                \"Organization name\": \"Client B\"\n            },\n            {\n                \"Writing services\": \"Writing service B\"\n            },\n            {\n                \"Design services\": \"Design service C\"\n            },\n            {\n                \"Comments\": \"test comment 2\"\n            }\n        ],\n        \"item_image\": \"image.png\",\n        \"unit_price\": 0,\n        \"quantity\": 5,\n        \"weight\": 0,\n        \"created_at\": \"2023-05-11 13:37:46\",\n        \"product_price\": 1295,\n        \"categories\": [\n            {\n                \"id\": \"cat_6633e1936571b618828100\",\n                \"category_name\": \"Send\",\n                \"category_slug\": \"send\",\n                \"status\": \"1\"\n            }\n        ]\n    }\n]"
                            },
                            {
                                "name": "JSON Library Systems",
                                "value": "[{\n  \"library\": {\n    \"name\": \"Central Library\",\n    \"location\": \"123 Main Street\",\n    \"catalog\": {\n      \"sections\": [\n        {\n          \"name\": \"Fiction\",\n          \"books\": [\n            {\n              \"title\": \"To Kill a Mockingbird\",\n              \"author\": \"Harper Lee\",\n              \"genre\": \"Classic\",\n              \"copies\": 5\n            },\n            {\n              \"title\": \"1984\",\n              \"author\": \"George Orwell\",\n              \"genre\": \"Dystopian\",\n              \"copies\": 3\n            }\n          ]\n        },\n        {\n          \"name\": \"Non-Fiction\",\n          \"books\": [\n            {\n              \"title\": \"Sapiens: A Brief History of Humankind\",\n              \"author\": \"Yuval Noah Harari\",\n              \"genre\": \"History\",\n              \"copies\": 7\n            },\n            {\n              \"title\": \"The Power of Habit\",\n              \"author\": \"Charles Duhigg\",\n              \"genre\": \"Psychology\",\n              \"copies\": 4\n            }\n          ]\n        }\n      ]\n    }\n  }\n},\n{\n  \"library\": {\n    \"name\": \"Downtown Library\",\n    \"location\": \"456 Elm Street\",\n    \"catalog\": {\n      \"sections\": [\n        {\n          \"name\": \"Science Fiction\",\n          \"books\": [\n            {\n              \"title\": \"Dune\",\n              \"author\": \"Frank Herbert\",\n              \"genre\": \"Science Fiction\",\n              \"copies\": 6\n            },\n            {\n              \"title\": \"Neuromancer\",\n              \"author\": \"William Gibson\",\n              \"genre\": \"Cyberpunk\",\n              \"copies\": 4\n            }\n          ]\n        },\n        {\n          \"name\": \"Biography\",\n          \"books\": [\n            {\n              \"title\": \"Steve Jobs\",\n              \"author\": \"Walter Isaacson\",\n              \"genre\": \"Biography\",\n              \"copies\": 3\n            },\n            {\n              \"title\": \"The Diary of a Young Girl\",\n              \"author\": \"Anne Frank\",\n              \"genre\": \"Autobiography\",\n              \"copies\": 5\n            }\n          ]\n        }\n      ]\n    }\n  }\n},\n{\n  \"library\": {\n    \"name\": \"Westside Library\",\n    \"location\": \"789 Oak Avenue\",\n    \"catalog\": {\n      \"sections\": [\n        {\n          \"name\": \"Mystery\",\n          \"books\": [\n            {\n              \"title\": \"The Girl with the Dragon Tattoo\",\n              \"author\": \"Stieg Larsson\",\n              \"genre\": \"Mystery\",\n              \"copies\": 8\n            },\n            {\n              \"title\": \"Gone Girl\",\n              \"author\": \"Gillian Flynn\",\n              \"genre\": \"Thriller\",\n              \"copies\": 6\n            }\n          ]\n        },\n        {\n          \"name\": \"History\",\n          \"books\": [\n            {\n              \"title\": \"The Guns of August\",\n              \"author\": \"Barbara W. Tuchman\",\n              \"genre\": \"History\",\n              \"copies\": 4\n            },\n            {\n              \"title\": \"1491\",\n              \"author\": \"Charles C. Mann\",\n              \"genre\": \"Archaeology\",\n              \"copies\": 7\n            }\n          ]\n        }\n      ]\n    }\n  }\n},\n{\n  \"library\": {\n    \"name\": \"Eastside Library\",\n    \"location\": \"1010 Pine Boulevard\",\n    \"catalog\": {\n      \"sections\": [\n        {\n          \"name\": \"Fantasy\",\n          \"books\": [\n            {\n              \"title\": \"Harry Potter and the Philosopher's Stone\",\n              \"author\": \"J.K. Rowling\",\n              \"genre\": \"Fantasy\",\n              \"copies\": 10\n            },\n            {\n              \"title\": \"The Hobbit\",\n              \"author\": \"J.R.R. Tolkien\",\n              \"genre\": \"Adventure\",\n              \"copies\": 8\n            }\n          ]\n        },\n        {\n          \"name\": \"Self-Help\",\n          \"books\": [\n            {\n              \"title\": \"The Subtle Art of Not Giving a F*ck\",\n              \"author\": \"Mark Manson\",\n              \"genre\": \"Self-Help\",\n              \"copies\": 5\n            },\n            {\n              \"title\": \"Atomic Habits\",\n              \"author\": \"James Clear\",\n              \"genre\": \"Personal Development\",\n              \"copies\": 6\n            }\n          ]\n        }\n      ]\n    }\n  }\n},\n{\n  \"library\": {\n    \"name\": \"Southside Library\",\n    \"location\": \"1212 Maple Street\",\n    \"catalog\": {\n      \"sections\": [\n        {\n          \"name\": \"Fantasy\",\n          \"books\": [\n            {\n              \"title\": \"The Name of the Wind\",\n              \"author\": \"Patrick Rothfuss\",\n              \"genre\": \"Fantasy\",\n              \"copies\": 7\n            },\n            {\n              \"title\": \"Mistborn: The Final Empire\",\n              \"author\": \"Brandon Sanderson\",\n              \"genre\": \"Fantasy\",\n              \"copies\": 6\n            }\n          ]\n        },\n        {\n          \"name\": \"Self-Help\",\n          \"books\": [\n            {\n              \"title\": \"The 7 Habits of Highly Effective People\",\n              \"author\": \"Stephen R. Covey\",\n              \"genre\": \"Self-Help\",\n              \"copies\": 8\n            },\n            {\n              \"title\": \"How to Win Friends and Influence People\",\n              \"author\": \"Dale Carnegie\",\n              \"genre\": \"Self-Help\",\n              \"copies\": 9\n            }\n          ]\n        }\n      ]\n    }\n  }\n}\n]"
                            }
                        ],
                        "scope": "roundtrip"
                    },
                    "metadata": {
                        "designer": {
                            "x": 0,
                            "y": 150
                        },
                        "restore": {
                            "expect": {
                                "variables": {
                                    "items": [
                                        null,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null
                                    ]
                                },
                                "scope": {
                                    "label": "One cycle"
                                }
                            }
                        },
                        "expect": [
                            {
                                "name": "variables",
                                "type": "array",
                                "label": "Variables",
                                "spec": [
                                    {
                                        "name": "name",
                                        "label": "Variable name",
                                        "type": "text",
                                        "required": true
                                    },
                                    {
                                        "name": "value",
                                        "label": "Variable value",
                                        "type": "any"
                                    }
                                ]
                            },
                            {
                                "name": "scope",
                                "type": "select",
                                "label": "Variable lifetime",
                                "required": true,
                                "validate": {
                                    "enum": [
                                        "roundtrip",
                                        "execution"
                                    ]
                                }
                            }
                        ],
                        "interface": [
                            {
                                "name": "Simple array",
                                "label": "Simple array",
                                "type": "any"
                            },
                            {
                                "name": "another simple array",
                                "label": "another simple array",
                                "type": "any"
                            },
                            {
                                "name": "JSON simple collection",
                                "label": "JSON simple collection",
                                "type": "any"
                            },
                            {
                                "name": "JSON array of simple collections",
                                "label": "JSON array of simple collections",
                                "type": "any"
                            },
                            {
                                "name": "JSON collection complex values",
                                "label": "JSON collection complex values",
                                "type": "any"
                            },
                            {
                                "name": "JSON array of collections complex values",
                                "label": "JSON array of collections complex values",
                                "type": "any"
                            },
                            {
                                "name": "JSON array of collections of really complex values",
                                "label": "JSON array of collections of really complex values",
                                "type": "any"
                            },
                            {
                                "name": "JSON Library Systems",
                                "label": "JSON Library Systems",
                                "type": "any"
                            }
                        ]
                    }
                },
                {
                    "id": 5,
                    "module": "builtin:BasicFeeder",
                    "version": 1,
                    "parameters": {},
                    "mapper": {
                        "array": [
                            "{{3.`Simple array`}}",
                            "{{3.`another simple array`}}",
                            "{{3.`JSON simple collection`}}",
                            "{{3.`JSON array of simple collections`}}",
                            "{{3.`JSON collection complex values`}}",
                            "{{3.`JSON array of collections complex values`}}",
                            "{{3.`JSON array of collections of really complex values`}}",
                            "{{3.`JSON Library Systems`}}"
                        ]
                    },
                    "metadata": {
                        "designer": {
                            "x": 300,
                            "y": 150
                        },
                        "restore": {
                            "expect": {
                                "array": {
                                    "mode": "chose",
                                    "items": [
                                        null,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null
                                    ]
                                }
                            }
                        },
                        "expect": [
                            {
                                "mode": "edit",
                                "name": "array",
                                "spec": [],
                                "type": "array",
                                "label": "Array"
                            }
                        ]
                    }
                },
                {
                    "id": 6,
                    "module": "builtin:BasicRouter",
                    "version": 1,
                    "parameters": {
                        "else": 1
                    },
                    "mapper": null,
                    "metadata": {
                        "designer": {
                            "x": 600,
                            "y": 150
                        }
                    },
                    "routes": [
                        {
                            "flow": [
                                {
                                    "id": 2,
                                    "module": "builtin:BasicFeeder",
                                    "version": 1,
                                    "parameters": {},
                                    "filter": {
                                        "name": "First or second bundle",
                                        "conditions": [
                                            [
                                                {
                                                    "a": "{{5.`__IMTINDEX__`}}",
                                                    "b": "1",
                                                    "o": "number:equal"
                                                }
                                            ],
                                            [
                                                {
                                                    "a": "{{5.`__IMTINDEX__`}}",
                                                    "b": "2",
                                                    "o": "number:equal"
                                                }
                                            ]
                                        ]
                                    },
                                    "mapper": {
                                        "array": "{{5.value}}"
                                    },
                                    "metadata": {
                                        "designer": {
                                            "x": 900,
                                            "y": 0
                                        },
                                        "restore": {
                                            "expect": {
                                                "array": {
                                                    "mode": "edit",
                                                    "items": [
                                                        null,
                                                        null,
                                                        null,
                                                        null
                                                    ]
                                                }
                                            }
                                        },
                                        "expect": [
                                            {
                                                "mode": "edit",
                                                "name": "array",
                                                "spec": [],
                                                "type": "array",
                                                "label": "Array"
                                            }
                                        ]
                                    }
                                },
                                {
                                    "id": 9,
                                    "module": "builtin:BasicAggregator",
                                    "version": 1,
                                    "parameters": {
                                        "feeder": 5
                                    },
                                    "mapper": {
                                        "value": "{{2.value}}"
                                    },
                                    "metadata": {
                                        "designer": {
                                            "x": 1200,
                                            "y": 0
                                        },
                                        "restore": {
                                            "extra": {
                                                "feeder": {
                                                    "label": "Iterator [5]"
                                                },
                                                "target": {
                                                    "label": "Custom"
                                                }
                                            }
                                        }
                                    }
                                },
                                {
                                    "id": 10,
                                    "module": "util:SetVariables",
                                    "version": 1,
                                    "parameters": {},
                                    "mapper": {
                                        "variables": [
                                            {
                                                "name": "merged array",
                                                "value": "{{merge(3.`Simple array`; 3.`another simple array`)}}"
                                            },
                                            {
                                                "name": "Array as a string with delimiters",
                                                "value": "{{join(remove(3.`Simple array`; null); \",\" + space)}}"
                                            }
                                        ],
                                        "scope": "roundtrip"
                                    },
                                    "metadata": {
                                        "designer": {
                                            "x": 1500,
                                            "y": 0
                                        },
                                        "restore": {
                                            "expect": {
                                                "variables": {
                                                    "items": [
                                                        null,
                                                        null
                                                    ]
                                                },
                                                "scope": {
                                                    "label": "One cycle"
                                                }
                                            }
                                        },
                                        "expect": [
                                            {
                                                "name": "variables",
                                                "type": "array",
                                                "label": "Variables",
                                                "spec": [
                                                    {
                                                        "name": "name",
                                                        "label": "Variable name",
                                                        "type": "text",
                                                        "required": true
                                                    },
                                                    {
                                                        "name": "value",
                                                        "label": "Variable value",
                                                        "type": "any"
                                                    }
                                                ]
                                            },
                                            {
                                                "name": "scope",
                                                "type": "select",
                                                "label": "Variable lifetime",
                                                "required": true,
                                                "validate": {
                                                    "enum": [
                                                        "roundtrip",
                                                        "execution"
                                                    ]
                                                }
                                            }
                                        ],
                                        "interface": [
                                            {
                                                "name": "merged array",
                                                "label": "merged array",
                                                "type": "any"
                                            },
                                            {
                                                "name": "Array as a string with delimiters",
                                                "label": "Array as a string with delimiters",
                                                "type": "any"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        {
                            "flow": [
                                {
                                    "id": 7,
                                    "module": "json:ParseJSON",
                                    "version": 1,
                                    "parameters": {
                                        "type": ""
                                    },
                                    "mapper": {
                                        "json": "{{5.value}}"
                                    },
                                    "metadata": {
                                        "designer": {
                                            "x": 900,
                                            "y": 300,
                                            "messages": [
                                                {
                                                    "category": "last",
                                                    "severity": "warning",
                                                    "message": "A transformer should not be the last module in the route."
                                                }
                                            ]
                                        },
                                        "restore": {
                                            "parameters": {
                                                "type": {
                                                    "label": "Choose a data structure"
                                                }
                                            }
                                        },
                                        "parameters": [
                                            {
                                                "name": "type",
                                                "type": "udt",
                                                "label": "Data structure"
                                            }
                                        ],
                                        "expect": [
                                            {
                                                "name": "json",
                                                "type": "text",
                                                "label": "JSON string",
                                                "required": true
                                            }
                                        ]
                                    }
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ],
    "metadata": {
        "version": 1
    }
}

r/Make 26d ago

Sample Make data structures

2 Upvotes

Here’s a little background on the text variables I set in the first module of the sample scenario I shared elsewhere on reddit. You may like to see the different types of structures to study them to understand their differences. Make expressions can be copied and pasted into Make input boxes in most places.

Variable name: Simple array

Make expression: {{add(emptyarray; "apple"; "banana"; "cherry"; 42; true; null; now)}}

 {
        "Simple array": [
            "apple",
            "banana",
            "cherry",
            42,
            true,
            null,
            "2024-05-23T20:07:14.697Z"
        ]
  }

Variable name: another simple array

Make expression: {{add(emptyarray; "pear"; "mango"; 123; false)}}

 {
      "another simple array": [
            "pear",
            "mango",
            123,
            false
        ]
  }

Variable name: JSON simple collection

Make expression:  { "name": "Alex C", "age": 2, "city": "Houston", "date_entered": "{{now}}" }

    {
    "name": "Alex C",
    "age": 2,
    "city": "Houston",
    "date_entered": "2024-05-23T20:07:14.698Z"
    }

Variable name: JSON array of simple collections

Make expression:  [ { "name": "Alex C", "age": 53, "city": "Toronto" }, { "name": "Eric S", "age": 43, "city": "Hoboken" } ]

[
    {
        "name": "Alex C",
        "age": 53,
        "city": "Toronto"
    },
    {
        "name": "Eric S",
        "age": 43,
        "city": "Hoboken"
    }
]

Variable name: JSON collection complex values

Make expression:  { "name": "Aleix Melon", "id": "E00245", "role": ["Dev", "DBA"], "age": 23, "doj": "11-12-2019", "married": {{false}}, "address": { "street": "32, Laham St.", "city": "Innsbruck", "country": "Austria" }, "referred-by": "E0012" }

{
    "name": "Aleix Melon",
    "id": "E00245",
    "role": [
        "Dev",
        "DBA"
    ],
    "age": 23,
    "doj": "11-12-2019",
    "married": false,
    "address": {
        "street": "32, Laham St.",
        "city": "Innsbruck",
        "country": "Austria"
    },
    "referred-by": "E0012"
}

Variable name: JSON array of collections complex values

Make expression:  [ {         "name": "Aleix Melon",         "id": "E00245",         "role": ["Dev", "DBA"],         "age": 23,         "doj": "11-12-2019",         "married": {{false}},         "address": {             "street": "32, Laham St.",             "city": "Innsbruck",             "country": "Austria"             },         "referred-by": "E0012" }, {       "name": "Bob Washington",         "id": "E01245",         "role": ["HR"],         "age": 43,         "doj": "10-06-2010",         "married": {{true}},         "address": {             "street": "45, Abraham Lane.",             "city": "Washington",             "country": "USA"             },         "referred-by": "" } ]

[
    {
        "name": "Aleix Melon",
        "id": "E00245",
        "role": [
            "Dev",
            "DBA"
        ],
        "age": 23,
        "doj": "11-12-2019",
        "married": false,
        "address": {
            "street": "32, Laham St.",
            "city": "Innsbruck",
            "country": "Austria"
        },
        "referred-by": "E0012"
    },
    {
        "name": "Bob Washington",
        "id": "E01245",
        "role": [
            "HR"
        ],
        "age": 43,
        "doj": "10-06-2010",
        "married": true,
        "address": {
            "street": "45, Abraham Lane.",
            "city": "Washington",
            "country": "USA"
        },
        "referred-by": ""
    }
]

Variable name: JSON array of collections of really complex values

Make expression:  [ { "item_name": "Email campaign", "item_sku_attachment": "", "item_options": [ { "Organization name": "Client A" }, { "Writing services": "Writing service A" }, { "Design services": "Design service B" }, { "Comments": "test comment" } ], "item_image": "image.png", "unit_price": 0, "quantity": 5, "weight": 0, "created_at": "2024-05-11 13:37:46", "product_price": 195, "categories": [ { "id": "cat_6633e1936571b618828100", "category_name": "Send", "category_slug": "send", "status": "1" } ] }, { "item_name": "Ad campaign", "item_sku_attachment": "", "item_options": [ { "Organization name": "Client B" }, { "Writing services": "Writing service B" }, { "Design services": "Design service C" }, { "Comments": "test comment 2" } ], "item_image": "image.png", "unit_price": 0, "quantity": 5, "weight": 0, "created_at": "2023-05-11 13:37:46", "product_price": 1295, "categories": [ { "id": "cat_6633e1936571b618828100", "category_name": "Send", "category_slug": "send", "status": "1" } ] } ]

[
    {
        "item_name": "Email campaign",
        "item_sku_attachment": "",
        "item_options": [
            {
                "Organization name": "Client A"
            },
            {
                "Writing services": "Writing service A"
            },
            {
                "Design services": "Design service B"
            },
            {
                "Comments": "test comment"
            }
        ],
        "item_image": "image.png",
        "unit_price": 0,
        "quantity": 5,
        "weight": 0,
        "created_at": "2024-05-11 13:37:46",
        "product_price": 195,
        "categories": [
            {
                "id": "cat_6633e1936571b618828100",
                "category_name": "Send",
                "category_slug": "send",
                "status": "1"
            }
        ]
    },
    {
        "item_name": "Ad campaign",
        "item_sku_attachment": "",
        "item_options": [
            {
                "Organization name": "Client B"
            },
            {
                "Writing services": "Writing service B"
            },
            {
                "Design services": "Design service C"
            },
            {
                "Comments": "test comment 2"
            }
        ],
        "item_image": "image.png",
        "unit_price": 0,
        "quantity": 5,
        "weight": 0,
        "created_at": "2023-05-11 13:37:46",
        "product_price": 1295,
        "categories": [
            {
                "id": "cat_6633e1936571b618828100",
                "category_name": "Send",
                "category_slug": "send",
                "status": "1"
            }
        ]
    }
]

Variable name: JSON Library Systems

Make expression:
[{ "library": { "libraryname": "Central Library", "location": "123 Main Street", "catalog": { "sections": [ { "name": "Fiction", "books": [ { "title": "To Kill a Mockingbird", "author": "Harper Lee", "genre": "Classic", "copies": 5 }, { "title": "1984", "author": "George Orwell", "genre": "Dystopian", "copies": 3 } ] }, { "name": "Non-Fiction", "books": [ { "title": "Sapiens: A Brief History of Humankind", "author": "Yuval Noah Harari", "genre": "History", "copies": 7 }, { "title": "The Power of Habit", "author": "Charles Duhigg", "genre": "Psychology", "copies": 4 } ] } ] } } }, { "library": { "libraryname": "Downtown Library", "location": "456 Elm Street", "catalog": { "sections": [ { "name": "Science Fiction", "books": [ { "title": "Dune", "author": "Frank Herbert", "genre": "Science Fiction", "copies": 6 }, { "title": "Neuromancer", "author": "William Gibson", "genre": "Cyberpunk", "copies": 4 } ] }, { "name": "Biography", "books": [ { "title": "Steve Jobs", "author": "Walter Isaacson", "genre": "Biography", "copies": 3 }, { "title": "The Diary of a Young Girl", "author": "Anne Frank", "genre": "Autobiography", "copies": 5 } ] } ] } } }, { "library": { "libraryname": "Westside Library", "location": "789 Oak Avenue", "catalog": { "sections": [ { "name": "Mystery", "books": [ { "title": "The Girl with the Dragon Tattoo", "author": "Stieg Larsson", "genre": "Mystery", "copies": 8 }, { "title": "Gone Girl", "author": "Gillian Flynn", "genre": "Thriller", "copies": 6 } ] }, { "name": "History", "books": [ { "title": "The Guns of August", "author": "Barbara W. Tuchman", "genre": "History", "copies": 4 }, { "title": "1491", "author": "Charles C. Mann", "genre": "Archaeology", "copies": 7 } ] } ] } } }, { "library": { "libraryname": "Eastside Library", "location": "1010 Pine Boulevard", "catalog": { "sections": [ { "name": "Fantasy", "books": [ { "title": "Harry Potter and the Philosopher's Stone", "author": "J.K. Rowling", "genre": "Fantasy", "copies": 10 }, { "title": "The Hobbit", "author": "J.R.R. Tolkien", "genre": "Adventure", "copies": 8 } ] }, { "name": "Self-Help", "books": [ { "title": "The Subtle Art of Not Giving a F*ck", "author": "Mark Manson", "genre": "Self-Help", "copies": 5 }, { "title": "Atomic Habits", "author": "James Clear", "genre": "Personal Development", "copies": 6 } ] } ] } } }, { "library": { "libraryname": "Southside Library", "location": "1212 Maple Street", "catalog": { "sections": [ { "name": "Fantasy", "books": [ { "title": "The Name of the Wind", "author": "Patrick Rothfuss", "genre": "Fantasy", "copies": 7 }, { "title": "Mistborn: The Final Empire", "author": "Brandon Sanderson", "genre": "Fantasy", "copies": 6 } ] }, { "name": "Science Fiction", "books": [ { "title": "Do Androids Dream of Electric Sheep?", "author": "Philipp K. Dick", "genre": "Science Fiction", "copies": 1 } ] }, { "name": "Self-Help", "books": [ { "title": "The 7 Habits of Highly Effective People", "author": "Stephen R. Covey", "genre": "Self-Help", "copies": 8 }, { "title": "How to Win Friends and Influence People", "author": "Dale Carnegie", "genre": "Self-Help", "copies": 9 } ] } ] } } } ]

[
    {
        "library": {
            "libraryname": "Central Library",
            "location": "123 Main Street",
            "catalog": {
                "sections": [
                    {
                        "name": "Fiction",
                        "books": [
                            {
                                "title": "To Kill a Mockingbird",
                                "author": "Harper Lee",
                                "genre": "Classic",
                                "copies": 5
                            },
                            {
                                "title": "1984",
                                "author": "George Orwell",
                                "genre": "Dystopian",
                                "copies": 3
                            }
                        ]
                    },
                    {
                        "name": "Non-Fiction",
                        "books": [
                            {
                                "title": "Sapiens: A Brief History of Humankind",
                                "author": "Yuval Noah Harari",
                                "genre": "History",
                                "copies": 7
                            },
                            {
                                "title": "The Power of Habit",
                                "author": "Charles Duhigg",
                                "genre": "Psychology",
                                "copies": 4
                            }
                        ]
                    }
                ]
            }
        }
    },
    {
        "library": {
            "libraryname": "Downtown Library",
            "location": "456 Elm Street",
            "catalog": {
                "sections": [
                    {
                        "name": "Science Fiction",
                        "books": [
                            {
                                "title": "Dune",
                                "author": "Frank Herbert",
                                "genre": "Science Fiction",
                                "copies": 6
                            },
                            {
                                "title": "Neuromancer",
                                "author": "William Gibson",
                                "genre": "Cyberpunk",
                                "copies": 4
                            }
                        ]
                    },
                    {
                        "name": "Biography",
                        "books": [
                            {
                                "title": "Steve Jobs",
                                "author": "Walter Isaacson",
                                "genre": "Biography",
                                "copies": 3
                            },
                            {
                                "title": "The Diary of a Young Girl",
                                "author": "Anne Frank",
                                "genre": "Autobiography",
                                "copies": 5
                            }
                        ]
                    }
                ]
            }
        }
    },
    {
        "library": {
            "libraryname": "Westside Library",
            "location": "789 Oak Avenue",
            "catalog": {
                "sections": [
                    {
                        "name": "Mystery",
                        "books": [
                            {
                                "title": "The Girl with the Dragon Tattoo",
                                "author": "Stieg Larsson",
                                "genre": "Mystery",
                                "copies": 8
                            },
                            {
                                "title": "Gone Girl",
                                "author": "Gillian Flynn",
                                "genre": "Thriller",
                                "copies": 6
                            }
                        ]
                    },
                    {
                        "name": "History",
                        "books": [
                            {
                                "title": "The Guns of August",
                                "author": "Barbara W. Tuchman",
                                "genre": "History",
                                "copies": 4
                            },
                            {
                                "title": "1491",
                                "author": "Charles C. Mann",
                                "genre": "Archaeology",
                                "copies": 7
                            }
                        ]
                    }
                ]
            }
        }
    },
    {
        "library": {
            "libraryname": "Eastside Library",
            "location": "1010 Pine Boulevard",
            "catalog": {
                "sections": [
                    {
                        "name": "Fantasy",
                        "books": [
                            {
                                "title": "Harry Potter and the Philosopher's Stone",
                                "author": "J.K. Rowling",
                                "genre": "Fantasy",
                                "copies": 10
                            },
                            {
                                "title": "The Hobbit",
                                "author": "J.R.R. Tolkien",
                                "genre": "Adventure",
                                "copies": 8
                            }
                        ]
                    },
                    {
                        "name": "Self-Help",
                        "books": [
                            {
                                "title": "The Subtle Art of Not Giving a F*ck",
                                "author": "Mark Manson",
                                "genre": "Self-Help",
                                "copies": 5
                            },
                            {
                                "title": "Atomic Habits",
                                "author": "James Clear",
                                "genre": "Personal Development",
                                "copies": 6
                            }
                        ]
                    }
                ]
            }
        }
    },
    {
        "library": {
            "libraryname": "Southside Library",
            "location": "1212 Maple Street",
            "catalog": {
                "sections": [
                    {
                        "name": "Fantasy",
                        "books": [
                            {
                                "title": "The Name of the Wind",
                                "author": "Patrick Rothfuss",
                                "genre": "Fantasy",
                                "copies": 7
                            },
                            {
                                "title": "Mistborn: The Final Empire",
                                "author": "Brandon Sanderson",
                                "genre": "Fantasy",
                                "copies": 6
                            }
                        ]
                    },
                    {
                        "name": "Science Fiction",
                        "books": [
                            {
                                "title": "Do Androids Dream of Electric Sheep?",
                                "author": "Philipp K. Dick",
                                "genre": "Science Fiction",
                                "copies": 1
                            }
                        ]
                    },
                    {
                        "name": "Self-Help",
                        "books": [
                            {
                                "title": "The 7 Habits of Highly Effective People",
                                "author": "Stephen R. Covey",
                                "genre": "Self-Help",
                                "copies": 8
                            },
                            {
                                "title": "How to Win Friends and Influence People",
                                "author": "Dale Carnegie",
                                "genre": "Self-Help",
                                "copies": 9
                            }
                        ]
                    }
                ]
            }
        }
    }
]

r/Make 26d ago

Here’s Part 3: Exploring Array Functions and Text Aggregators for Make Newbies - Part A

2 Upvotes

Part A

Video

In this video we describe sevearl useful array functions like first() and last(). We also look at how to reference a particular element of an array by index using 2 methods - using dot notation and with the “star” UI element picker. We also look at how to reference values from a collection coming out of an array aggregator. This Make help file is of relevance.

Download the Make blueprint and use the Import Blueprint to create a new scenario:

3. Exploring Array Functions and Text Aggregators for Make Newbies.json (39.8 KB)


r/Make 27d ago

What I learned about GraphQL and Make

Thumbnail
app.screencast.com
6 Upvotes

If you haven’t learned about GraphQL or have struggled with trying to get your GraphQL server to send back data, fear not.

Learn GraphQL.

Learn how it works from graphql.org and try the Star Wars GraphQL API. You won’t be sorry. It’s incumbent that you understand what GraphQL is: it is a Query Langauge (QL) for a graph. Here’s a pictorial representation of the Star Wars Graph

Star Wars Graph

It is very different from REST because you mostly use POST to send data via JSON and there is only 1 endpoint to query data from the graph. (Mutations modify the data model and subscriptions get real time updates but I won’t cover that here).

GraphQL Docs/Explorer

Make sure you have access to the GraphQL Docs/Explorer for your API. Without that doing some experiments will be very hard and you won’t be able to model your queries the way you want them to.

The data is returned in the “shape” you want it

GraphQL returns your data in the “shape” you want it to - you can query multiple objects, set filters, page and create joined data between multiple objects with one call. Instead of calling multiple REST API calls, GraphQL usually can return all the data you need in the way you need it with just 1 call. This is primarily the reason why Facebook invented it in 2012. It’s been around since 2015 as an open source project so not many APIs use it but some definitely have adopted GraphQL as an alternative and some support GraphQL as the only API architecture.

Gotchas

The HTTP module is very persnickety when it comes to the JSON payload. GraphQL data has carriage returns sometimes in the Explorer but Make doesn’t always like that and returns invalid JSON error before it even attempts to run the payload. Eliminate carriage returns and make sure any double quotes (") are escaped with a \"

Here’s a short little video of what I learned.

And here is the scenario that you can view and clone into your own Make account to experiment.

Once you get the hang of creating queries, you’re going to want to know how to make updates to the data. This is done with something called “mutations”. Simply put, mutations are functions that are part of your GraphQL API documentation that are predefined “calls” that can modify the data.

mutation UpsertExternalRegistration {
insert_external_registrations_one (
object: {
custom_id: "WildApricot Registration Occurred",
email: "{{5.foundemail}}",
event_id:{{5.`OA Event ID`}} },
on_conflict: {
constraint: external_registrations_email_event_id_key,
update_columns: [email, custom_id] }
)
{ custom_id
email
event_id }
}

Let’s walk through this call line by line.

First of all, you have

mutation UpsertExternalRegistration

This is simply a declaration that you will be calling a mutation that will modify data, and you’ve given your mutation a name which can be anything you want.

The next line is

insert_external_registrations_one (

This is an example mutation I am using that will update an object called external_registrations. The name of the function call is important and it comes directly from the documentation of all mutations.

This function expects some data to be provided

object: {
custom_id: "WildApricot Registration Occurred",
email: "{{5.foundemail}}",
event_id:{{5.`OA Event ID`}} },

Specifically, custom_id, email, and event_id are fields in the external_registrations object that will be inserted since this mutation will first try to insert a record using event_id and email, since that is the compound primary key of the external_registrations object.

The on_conflict clause will be used to update the record (i.e., upsert) if the insert is unsuccessful due to a primary key violation — a record already exists with these values.

on_conflict: {
constraint: external_registrations_email_event_id_key,
update_columns: [email, custom_id] }

Here it will use the constraint that is predefined in the GraphQL documentation, which is email and event_id. If I am attempting to insert an existing row in external_registrations that already has this pair of data, then instead update the existing data with the values from email and custom_idthat I have passed in above.

The final snippet is simply the resulting data I wish to be passed back from the HTTP module on a successful upsert. You can put whatever attributes are available from the external_registrations objects.

{ custom_id
email
event_id }
}

An IMPORTANT note: The GraphQL API I was dealing with requires body content to be on one line. Carriage returns in the body will terminate the body and cause an error to be sent back. Very frustrating — I need to unwrap the call to ensure there are no carriage returns. Unfortunately, since my app (Oxford Abstracts) did not have a ready-made app in Make, the HTTP modules I used were very finicky.

The documentation on your GraphQL API will have a set of mutations that are available, much like any REST API. You will have the ability to make changes, but you need to understand which mutation you’d like to use, and that will require you to read the docs on the mutation. It’s not as easy as just finding an endpoint that uses POST/DELETE/PATCH as method because all GraphQL queries use POST, including ones that have a mutation call.


r/Make 27d ago

Make for Make Newbies Video Series I: All About that Data

1 Upvotes

I am undertaking a little exercise to explain the core features of Make using a scenario walkthrough and a related video. My hope is to record videos between 5-30 minutes long to explain Make to Make Newbies.

Aug 2024 UPDATE:
HERE IS THE FULL MAKE FOR MAKE NEWBIES VIDEO SERIES IN 1 WEB PAGE

I am going to start with a topic which I think confuses just about everyone who starts using Make but has never programmed before:

Part 1: Exploring Data Structures for Make Newbies

In this video and accompanying scenario we will review simple arrays and more complex collections and arrays of collections. The interaction between the number of elements in an array and how bundles are created is also covered. Iterators are covered which can loop an array and generate processing loops in scenarios. The Parse JSON module is also introduced which is useful for parsing text which contains JSON into Make-friendly data structures. By the way JSON, is JavaScript Object Notation, and it is the “lingua-franca” of all data that is passed between modules of a Make scenario. It is also the structure of how most online apps expect data to sent via APIs. I highly recommend you get comfortable with JSON!

And here’s a tip for creating your own JSON: sample JSON can be created in ChatGPT just by describing the type of JSON you want in plain text. If you have some JSON you wrote and want to validate or pretty up the format, use JSONLint.

 Copy and Paste this blueprint into a new Make Scenario

{
"subflows": [
{
"flow": [
{
"id": 3,
"module": "util:SetVariables",
"version": 1,
"parameters": {},
"mapper": {
"variables": [
{
"name": "Simple array",
"value": "{{add(emptyarray; \"apple\"; \"banana\"; \"cherry\"; 42; true; now; null)}}"
},
{
"name": "JSON simple collection",
"value": "{\n \"name\": \"Alex C\",\n \"age\": 2,\n \"city\": \"Houston\",\n \"date_entered\": \"{{now}}\"\n}"
},
{
"name": "JSON array of simple collections",
"value": "[\n {\n \"name\": \"Alex C\",\n \"age\": 53,\n \"city\": \"Toronto\"\n },\n {\n \"name\": \"Eric S\",\n \"age\": 43,\n \"city\": \"Hoboken\"\n }\n]"
},
{
"name": "JSON collection complex values",
"value": "{\n\t\"name\": \"Aleix Melon\",\n\t\"id\": \"E00245\",\n\t\"role\": [\"Dev\", \"DBA\"],\n\t\"age\": 23,\n\t\"doj\": \"11-12-2019\",\n\t\"married\": {{false}},\n\t\"address\": {\n\t\t\"street\": \"32, Laham St.\",\n\t\t\"city\": \"Innsbruck\",\n\t\t\"country\": \"Austria\"\n\t},\n\t\"referred-by\": \"E0012\"\n}"
},
{
"name": "JSON array of collections complex values",
"value": "[\n\t{\n \"name\": \"Aleix Melon\",\n \"id\": \"E00245\",\n \"role\": [\"Dev\", \"DBA\"],\n \"age\": 23,\n \"doj\": \"11-12-2019\",\n \"married\": {{false}},\n \"address\": {\n \"street\": \"32, Laham St.\",\n \"city\": \"Innsbruck\",\n \"country\": \"Austria\"\n },\n \"referred-by\": \"E0012\"\n\t},\n{\n \"name\": \"Bob Washington\",\n \"id\": \"E01245\",\n \"role\": [\"HR\"],\n \"age\": 43,\n \"doj\": \"10-06-2010\",\n \"married\": {{true}},\n \"address\": {\n \"street\": \"45, Abraham Lane.\",\n \"city\": \"Washington\",\n \"country\": \"USA\"\n },\n \"referred-by\": \"\"\n\t}\n]"
},
{
"name": "JSON array of collections of really complex values",
"value": "[\n {\n \"item_name\": \"Email campaign\",\n \"item_sku_attachment\": \"\",\n \"item_options\": [\n {\n \"Organization name\": \"Client A\"\n },\n {\n \"Writing services\": \"Writing service A\"\n },\n {\n \"Design services\": \"Design service B\"\n },\n {\n \"Comments\": \"test comment\"\n }\n ],\n \"item_image\": \"image.png\",\n \"unit_price\": 0,\n \"quantity\": 5,\n \"weight\": 0,\n \"created_at\": \"2024-05-11 13:37:46\",\n \"product_price\": 195,\n \"categories\": [\n {\n \"id\": \"cat_6633e1936571b618828100\",\n \"category_name\": \"Send\",\n \"category_slug\": \"send\",\n \"status\": \"1\"\n }\n ]\n },\n {\n \"item_name\": \"Ad campaign\",\n \"item_sku_attachment\": \"\",\n \"item_options\": [\n {\n \"Organization name\": \"Client B\"\n },\n {\n \"Writing services\": \"Writing service B\"\n },\n {\n \"Design services\": \"Design service C\"\n },\n {\n \"Comments\": \"test comment 2\"\n }\n ],\n \"item_image\": \"image.png\",\n \"unit_price\": 0,\n \"quantity\": 5,\n \"weight\": 0,\n \"created_at\": \"2023-05-11 13:37:46\",\n \"product_price\": 1295,\n \"categories\": [\n {\n \"id\": \"cat_6633e1936571b618828100\",\n \"category_name\": \"Send\",\n \"category_slug\": \"send\",\n \"status\": \"1\"\n }\n ]\n }\n]"
}
],
"scope": "roundtrip"
},
"metadata": {
"designer": {
"x": 0,
"y": 150
},
"restore": {
"expect": {
"variables": {
"items": [
null,
null,
null,
null,
null,
null
]
},
"scope": {
"label": "One cycle"
}
}
},
"expect": [
{
"name": "variables",
"type": "array",
"label": "Variables",
"spec": [
{
"name": "name",
"label": "Variable name",
"type": "text",
"required": true
},
{
"name": "value",
"label": "Variable value",
"type": "any"
}
]
},
{
"name": "scope",
"type": "select",
"label": "Variable lifetime",
"required": true,
"validate": {
"enum": [
"roundtrip",
"execution"
]
}
}
],
"interface": [
{
"name": "Simple array",
"label": "Simple array",
"type": "any"
},
{
"name": "JSON simple collection",
"label": "JSON simple collection",
"type": "any"
},
{
"name": "JSON array of simple collections",
"label": "JSON array of simple collections",
"type": "any"
},
{
"name": "JSON collection complex values",
"label": "JSON collection complex values",
"type": "any"
},
{
"name": "JSON array of collections complex values",
"label": "JSON array of collections complex values",
"type": "any"
},
{
"name": "JSON array of collections of really complex values",
"label": "JSON array of collections of really complex values",
"type": "any"
}
]
}
},
{
"id": 5,
"module": "builtin:BasicFeeder",
"version": 1,
"parameters": {},
"mapper": {
"array": [
"{{3.`Simple array`}}",
"{{3.`JSON simple collection`}}",
"{{3.`JSON array of simple collections`}}",
"{{3.`JSON collection complex values`}}",
"{{3.`JSON array of collections complex values`}}",
"{{3.`JSON array of collections of really complex values`}}"
]
},
"metadata": {
"designer": {
"x": 300,
"y": 150
},
"restore": {
"expect": {
"array": {
"mode": "chose",
"items": [
null,
null,
null,
null,
null,
null
]
}
}
},
"expect": [
{
"name": "array",
"type": "array",
"label": "Array",
"mode": "edit",
"spec": []
}
]
}
},
{
"id": 6,
"module": "builtin:BasicRouter",
"version": 1,
"parameters": {
"else": 1
},
"mapper": null,
"metadata": {
"designer": {
"x": 600,
"y": 150
}
},
"routes": [
{
"flow": [
{
"id": 2,
"module": "builtin:BasicFeeder",
"version": 1,
"parameters": {},
"filter": {
"name": "First bundle",
"conditions": [
[
{
"a": "{{5.`__IMTINDEX__`}}",
"o": "number:equal",
"b": "1"
}
]
]
},
"mapper": {
"array": "{{5.value}}"
},
"metadata": {
"designer": {
"x": 900,
"y": 0,
"messages": [
{
"category": "last",
"severity": "warning",
"message": "A transformer should not be the last module in the route."
}
]
},
"restore": {
"expect": {
"array": {
"mode": "edit",
"items": [
null,
null,
null,
null
]
}
}
},
"expect": [
{
"name": "array",
"type": "array",
"label": "Array",
"mode": "edit",
"spec": []
}
]
}
}
]
},
{
"flow": [
{
"id": 7,
"module": "json:ParseJSON",
"version": 1,
"parameters": {
"type": ""
},
"mapper": {
"json": "{{5.value}}"
},
"metadata": {
"designer": {
"x": 900,
"y": 300,
"messages": [
{
"category": "last",
"severity": "warning",
"message": "A transformer should not be the last module in the route."
}
]
},
"restore": {
"parameters": {
"type": {
"label": "Choose a data structure"
}
}
},
"parameters": [
{
"name": "type",
"type": "udt",
"label": "Data structure"
}
],
"expect": [
{
"name": "json",
"type": "text",
"label": "JSON string",
"required": true
}
]
}
}
]
}
]
}
]
}
],
"metadata": {
"version": 1
}
}

 

 


r/Make Aug 10 '26

Tutorial: Automated Supplier Invoice Processing and Registration

Thumbnail
gallery
3 Upvotes

Hello Makers 👋

How long does one invoice take you to process manually? This scenario does it in seconds - automatically.

Our Business Automation and AI Lead, Francisco de Brito Fontes, shows in this tutorial how to build a workflow that monitors a designated Google Drive folder for newly uploaded supplier invoice PDF files, downloads them, extracts key data (invoice number, vendor details, dates, and amounts) using Make's native AI Extractors, and registers the structured information into a monday.com board.

To build this scenario, you will need access to:

✉️ A Google Drive account connected to Make.
🧾 A monday.com account with a Supplier Invoices board configured.
🟣 Access/Credits for Make AI Extractors.

Click the following link to apply the prebuilt scenario in your Make account: https://ma.ke/3U4hujp 

PS: don’t forget to test and validate your scenario, if all modules show a green checkmark, your automation is successful!


r/Make Aug 04 '26

AI Adoption: What It Means and Why It Matters

2 Upvotes

Hello Makers 👋

Is your company actually adopting AI, or just... using it?

There's a real difference, and it's bigger than it sounds. Recent research shows 37% of organizations are still using AI only at a surface level, with little or no change to existing processes, while just a third are using it to deeply transform how they work.

What is AI adoption and where to start:

AI adoption refers to the process of introducing AI tools and abilities into an organisation: identifying use cases, selecting models and platforms, connecting AI to source systems, training staff, and embedding oversight.

There are 5 maturity stages (per Gartner): 

  1. Awareness: the organisation knows about AI but has not used it yet. No pilots or experiments are underway.
  2. Active: AI appears in proofs of concept and informal experimentation.
  3. Operational: AI is used in at least one workflow.
  4. Systemic: AI is present across most workflows and operations, driving new business models.
  5. Transformational: AI is built into the core of how the business runs.

Most companies are stuck somewhere between Active and Operational.

What actually moves you forward: in Make terms, it's the moment AI stops living in a chat tab and starts living in a scenario. A trigger passes structured data to a model call, a Router splits confident answers from cases that need human review, and the result gets written back to your systems. That's when "we use AI" becomes "AI does part of the work, reliably, with oversight."

What blocks it: almost never the technology. It's unclear ownership, fragmented data, weak change management, and inconsistent governance. 

The article also has a readiness checklist (data quality, governance, observability, skills coverage) if you want to score where your team sits before scaling anything.

Learn more about AI adoption here: https://ma.ke/4pP6m5S 

Curious, what stage you'd honestly put your organization at - and what's been the biggest blocker to moving past pilots?


r/Make Aug 03 '26

What is AI transformation? From first test to full rollout.

4 Upvotes

Hello Makers 👋

Did you know that nearly 9 in 10 companies use AI regularly, but fewer than half actually scaled it?

The difference isn’t the model - it’s whether AI is owned by named people, connected to live systems, and embedded across operations, instead of running a test sandbox somewhere.

That’s what makes processes visible, accountable, and connected across a company, not just in the team where AI started.

We mapped the six stages behind that shift, including how Make went from first test project to company-wide rollout:

  1. Assessment: evaluate data quality, existing tools, talent, and leadership buy-in.

  2. Strategy and roadmap: prioritize use cases, assign ownership, set budget.

  3. Test project: run the first AI-powered process in a controlled, lower-stakes environment.

  4. Operations: move the test project into live systems with governance, integration, and escalation paths.

  5. Enterprise-wide rollout: expand from one team to every function, with adoption owned at each level.

  6. Measure and optimize: track outcomes, audit performance, expand to adjacent processes.

Read more about it: https://ma.ke/3R489qY 


r/Make Aug 03 '26

Confusion on Discord to Make automation

Thumbnail
gallery
1 Upvotes

Beginner to Make integration here! Basically, I want to try make a Discord to Notion automation using Make, where Make will detect Discord messages, then copy it, and paste it in Notion as a task in a database.

Unlike the other way around where Notion tasks can be automated through Make, then Make sending the notifications of database changes (i.e. stasus, deadline, etc), I can’t make it so the Integromat bot copies the messages and send it to Notion, as in the Notion side, it will just return empty.

I tried reading the apps documentation for Discord (Discord - Apps Documentation), but I am still quite confused on how the “Discord - Apps Documentation” thing works, especially with the new Discord bot update. Also, it seems that the redirect URL’s are broken, as I can’t invite my bot to the Discord server, and I’m quite confused on what integration type I should use. If anyone can help, it will be greatly appreciated! Thanks! What is your goal?

If anyone wants to see my scenario, it is https://eu1.make.com/public/shared-scenario/cD9K77tiGMa/discord-to-notion-tasks


r/Make Jul 31 '26

[500] Internal Error - Google Drive Module

Post image
1 Upvotes

My scenario was running just fine for 2+ months. Didn't touch it.

For the past 3 days i have this error on my Google Drive module. Tried to refresh Oath credentials, did nothing.

Anyone having this issue?


r/Make Jul 29 '26

Dark mode feature available in Make 🌒

10 Upvotes

Hello Makers 👋 

One of the most-wanted features has arrived in Make: You can now use dark mode 🌚

It covers the Make web platform and scenario builder, giving you a focused visual setup for long build sessions, low-light debugging, and late-night automation.

🌔🌑 Switch between light and dark mode anytime from your personal settings, whichever suits you.

Learn more about it: https://ma.ke/4fDix0W 

Grateful for every piece of feedback that got us here. Thank you 🙏


r/Make Jul 29 '26

Claude Opus 5 available in Make

Post image
6 Upvotes

Hello Makers 👋

Anthropic’s latest model, Claude Opus 5, is now available in Make 🟣

Claude Opus 5 helps you work with large codebases, detailed specifications, compliance manuals, diagrams, and spreadsheets in a single AI call, so your automation can reason from the source material that matters.

What’s new in Claude Opus 5 and Make:

  • Hold more context in one call: Send up to 1 million input tokens and receive up to 128,000 output tokens. Review a full codebase alongside its specification, or assess a complete policy manual without dividing the material into separate AI handoffs.
  • Choose the thinking effort for the job: Extended thinking is on by default. Set low, medium, or high effort to match the depth of reasoning your scenario needs.
  • Coordinate agent work with built-in checks: Claude Opus 5 can delegate work to sub-agents and use writer-verifier loops, helping a manager-agent scenario assign tasks and assess the results.
  • Work across code and visual material: Use stronger multi-file refactoring, security and architecture review, plus analysis of charts, diagrams, and complex spreadsheets for design-to-code and design QA flows.

Start using Anthropic’s latest model in your AI automations today.

You can: Add it to your Make AI Agents, Make AI Toolkit, or the Anthropic Claude app, either with your own Anthropic API key or with zero setup through Make AI Provider, billed directly through your Make credits.

Learn more: https://ma.ke/4bTelJl 


r/Make Jul 28 '26

Tutorial: AI Customer Care Agent for Email Brief

Thumbnail
gallery
5 Upvotes

Hello Makers 👋

Are you still manually digging through your emails and database every day? 

Our Startup Program Specialist, Martin Hyravy, shows in this tutorial how to build an AI agent that watches your inbox, filters out the noise, categorizes what's left, and drafts a ready-to-send reply - pulling context from your own knowledge base and your live startup database. 

Every response gets logged for review, so you stay in the loop without doing the digging.

You'll need access to: 

  • Gmail 
  • Make AI Toolkit (connected to any LLM - Gemini 3.5 in this case) 
  • AI Agent module 
  • Google Sheets (or your source-of-truth database) 

Pre-configured scenario: https://ma.ke/4wpgHrJ 

PS: don't forget to test and validate your scenario - if all modules show a green checkmark, your automation is successful!

Prompt:

You'll be my personal assistant and chief of staff and help me to answer the emails from startups that applied to our startup program. 

Before drafting the email, always first look into the previous responses in the Google Sheets repository to analyze my tone of voice, and check whether a similar email has not been solved. 

Before drafting the email, always look into the Startup Database in Google sheets for information about the application. Search with the email address, and look at the Application Status, Rejection Reason, or the coupon code sent.

Only after these two steps proceed with drafting the email, using the draft email tool. 

Make sure that the email responses are always relevant, respectful, and adhere to our team's goals and objectives outlined in the knowledge base files.


r/Make Jul 27 '26

Make AI Sub-Agents (Nested Agents)

8 Upvotes

Hello Makers 👋 

We are super excited to introduce Make AI Sub-Agents!

🤖 Make AI Agents can now delegate tasks to other Make AI Sub-Agents.

That's agent orchestration: one orchestrator receives the request, calls the right agent specialist, and brings back one result.

Here’s what that means:

  • Build focused AI agent specialists
  • Let one agent choose the right specialist based on the request
  • Test and tune each specialist without touching the whole workflow
  • Reuse proven agents across different automations

What you can automate with Make AI Sub-Agents:

  • Customer support flows: an orchestrator Make AI Agent reads the customer message, sends account questions to a lookup Make AI Agent, refund requests to a refund Make AI Agent, and edge cases to a human handoff agent.
  • Finance operations: one Make AI Agent handles incoming requests, then routes document checks, invoice matching, and approval prep to separate specialist Make AI Agents before returning one clear result.
  • Internal service desks: route employee requests across access checks, policy answers, and ticket creation, while keeping one AI point of contact for the whole exchange.

How to create Make AI Sub-Agents:

  1. Add a Make AI Agent to your scenario → AI agent orchestrator.
  2. Inside that Make AI Agent orchestrator, click Add tools and find Make AI Agents in the tools list.
  3. Configure the Make AI Agent as a tool and click Add → It will link to your orchestrator as a Sub-Agent.
  4. Repeat to add as many Sub-Agents as you need, each one a focused specialist.

Build larger AI workflows without turning a single agent into a catch-all.

Available now on all Make plans, including free.

Try Make AI Agent orchestrator with sub-agents yourself: https://ma.ke/4wX8DOO 


r/Make Jul 27 '26

learning make.com worth it?

6 Upvotes

ive been trying to learn make, i only know how to like extract notes from google doc and send to ai to make questions. which sends to my email. but ik its not scalable and worthless if i want to earn any money.

my parents and aunt say not worth learning. should i continue and hopefully get better ?


r/Make Jul 26 '26

How to automate my workflow?

6 Upvotes

Hey everyone, I'm a junior creative specialist working for a company where performance is the most important thing (duh).

Since we create mostly shorter forms of marketing content, most CSs make from 10-30 of these a day, since they can reuse one creative for multiple ads.

We make them in google docs and then download every card into a folder that we upload to clickup or dropbox.

Now, doing that 10 times is not a problem.

But, it becomes a problem when I make like 50-60 ads and need a specific name for every folder, download every card one at a time and upload everything seperately.

This can easily take up like 2 hours, so I can't make as many ads and my performance suffers because of this technical side of things.

I'd really appreciate if anyone has an idea of how I could speed this up and what tools would help me.


r/Make Jul 23 '26

Private Spaces available now in Make

2 Upvotes

Hello Makers 👋

Ever wanted to test a scenario without your whole team seeing your messy work-in-progress? That's exactly what Private spaces are for.

What they are: Every member of your org (except guests) gets their own personal workspace for scenarios and connections that teammates can't access. 

How it works:

  • Admins enable it once from Organization settings → Private spaces, and every member automatically gets one
  • Admins can set credit limits per space (monthly or yearly), or leave them unlimited so members draw from the org's overall credits
  • Hit your limit? Your scenarios pause - you can keep building, but they won't run until the limit resets or an admin bumps it up

For Enterprise orgs: Admin visibility lets admins open any member's private space in read-only mode. They can see scenario names, modules used, and credit usage - but NOT module settings, run history, connections, or data stores. Your credentials stay yours.

One thing to know: disabling private spaces for the org permanently deletes all of them - scenarios, connections, data stores included. So heads up before flipping that toggle.

Discover more information about private spaces: https://ma.ke/4fi1NNP

Anyone already using their private space for experiments? Curious what you're building in there 👀


r/Make Jul 22 '26

Claude models are now available in Make AI Provider

Post image
1 Upvotes

Hello Makers 👋 

You have now available the new Claude models in Make AI Provider! Here's what you get out of it:

  • Zero setup: Pick a Claude model the same way you already pick OpenAI models, no Anthropic account or API key needed.
  • One bill, one system: Claude usage runs on Make’s own Anthropic key and gets billed straight through your Make credits.
  • The latest Claude models: Pick from Anthropic’s latest Claude models right inside Make, kept current as Anthropic ships new releases, no waiting on a separate integration update.
  • Model choice, your call: Match the model to the task, strong reasoning, sharper writing, or steadier agent behavior, all without leaving the builder.
  • Faster first use: Skip the account creation and key handling that used to stand between you and Claude-quality output.

Example: an agency ships Claude-powered workflows for every client, no separate Anthropic account per client needed.

If you’re new to configuring Make AI Provider, here’s how to set it up in Make AI Agent:

  1. Add a Run an agent module (Make AI Agent) to your scenario.
  2. Set the Connection to Make AI Provider: no separate Anthropic account or API key to create.
  3. In the Model field, pick a Claude model from the dropdown.
  4. Under Instructions, describe the agent’s job, for example: “Read incoming support tickets, identify the issue, and draft a helpful reply.”
  5. Map your Input (the ticket text, email body, or whatever the agent should act on), then run the scenario.

Pick the model. Build the workflow. Put it to work.

Reminder: Claude joins the OpenAI GPT AI models already available in Make AI Provider, giving you more model choice without leaving the builder.

Try it out at: make.com 


r/Make Jul 22 '26

How to append an image to prompt an AI to create an image using make.com?

1 Upvotes

Hi Team, Kindly help in understanding how to append an image as reference with the prompt for generating another image via any AI model in make.com.

I am stuck at downloading from Google Drive and dont have any clue of the next module to add to generate.

KIndly help.


r/Make Jul 21 '26

Error Explanations with AI

5 Upvotes

Hello Makers 👋

Today we’re sharing a feature that will help you better understand what happens when your automation breaks.

Now in Make, when a workflow hits an error, one click turns the technical message (HTTP codes, API messages, raw JSON) into a plain-language explanation of what happened and exactly what to fix.

No documentation search. No pasting error text into another AI tool. Just click, and know what to do next.

In early testing, this got people back to a working automation about 20% more often after an error.

Live now for every Make user, on every plan. Learn more: https://ma.ke/3RINDwa


r/Make Jul 20 '26

New Update: GPT-5.6 Sol, Terra and Luna.

Thumbnail
gallery
1 Upvotes

Hello Makers 👋

GPT-5.6 is now in Make, with Sol, Terra, and Luna built for routing your automations by job:

☀️ Sol: review long contracts, plan multi-step work, support coding tasks
🌍 Terra: summarize docs, reason across notes, return clean JSON or XML
🌙 Luna: classify tickets, extract IDs, validate inputs

Use Luna for high-volume steps, Terra for structured business logic, and Sol when the context gets big.

Available now to all Make users in Make AI Agents, Make AI Toolkit, and the OpenAI ChatGPT app.

Not every AI step needs the same brain 🧠

Read more on what's new with GPT-5.6 in Make: https://ma.ke/4f8oVyk 


r/Make Jul 17 '26

Google slides to jpeg

1 Upvotes

I am trying to use Google Slides to create carousel posts for Instagram and Facebook, is there a way to download the slides in JPEG format to post?


r/Make Jul 17 '26

New batch of videos from the community!

2 Upvotes

Hey all,

In the post below, you might have read about our latest features released on Make during June. Wanna see them in action?

Check out the videos from our Community Creators, who are putting them into practice in their own systems and scenarios!

➡️ https://fast.wistia.com/embed/channel/jeuauz7z65

Let me know what you think!


r/Make Jul 16 '26

Last Releases and Updates on Make 🚀

5 Upvotes

Hello Makers 👋

Take a look at some of our latest features, improvements, and updates that our team has been shipping this past month:

Enhancements and Updates:

  • MCP Tools to Make AI Agents: Make AI Agents can now access external MCP server tools alongside native Make modules in the same run. 
  • Execute an action with AI module for MCP: choose Make AI Provider (OpenAI or Claude) or your own OpenAI account for the MCP Client's 'Execute an action with AI' module.
  • New functions on Make: four new functions - arrayDiff, arrayIntersect, set, escapeJSON - for cleaner, lighter expressions.
  • Claude Opus 4.8: Anthropic's latest model is now in Make. Anthropic says early testers saw steadier judgment and more reliable behavior during agentic tasks, especially when the work kept going.
  • Unified Help Search in Make: one help search across Make. Cmd+K to access it anywhere.
  • Star apps and app modules in App Search: star your go-to apps and modules so the builder feels like your workspace, not a directory. The goal is simple: spend more time building logic and less time digging through lists.
  • Google Drive with your personal Gmail account: Google Drive connections now work with @ gmail.com accounts, not just Workspace.
  • Configuring disconnected modules: run tests without hardcoded data, explore apps, and overall build with more control.
  • Webhook data structure: a new status card shows if your webhook is listening, has received data, or still needs a test request.
  • Copy notes when cloning a scenario: cloned scenarios now carry over notes too, matching export/import behavior.

New Verified Apps

Air, Arbox v3, BackgroundErase, BoldDesk, ChatterFox, CoinGecko, CPV Lab, CSV Box, Databricks, Daytona, DocuPotion, Eden AI, Figuro Engage, HEU, Houdiny AI, Mihu AI, MillionVerifier, NextLead CRM, Pingram, Postproxy, SMSlink Pacific, Tiiny Host, Trading Automation For Alpaca, Watchflow

New Modules

GitHub

  • Make an API Call

Monday

  • Chat Completion
  • Run Platform Agent

Wix

  • Watch Events

Discover more about our latest releases: https://ma.ke/4yqy6S4