LogoLogo
Get support
  • Home
  • Make API
  • Make Bridge
  • White Label
  • MCP Server
  • Custom Apps Documentation
  • How to read the documentation
  • Make Apps Editor
    • Develop apps in Make UI
    • Develop apps in VS Code
      • Generate your API key
      • Configure VS Code
      • Create an app in VS Code
      • Set the app's icon in VS Code
      • Use general controls
      • Manage testing and production app versions
      • Develop apps collaboratively
      • Write IML tests
      • Local development for Apps
        • Clone Make app to local workspace
        • Develop app in a local workspace (offline)
        • Commit the changes in Git repository
        • Deploy changes from local app to Make app
        • Pull changes from Make app
        • Create a new app origin
        • Compare changes between local and Make app
  • Create your first app
    • Create your app
    • App's environment
    • Base
    • Module
    • Connection
    • Error handling
  • Debugging your app
    • Debugging of pagination in list/search modules
    • Debugging RPC
    • Debugging of Custom IML Functions
      • Debug IML in Web Browser
      • Debug IML in VS Code
  • Make DevTool
    • Live Stream
    • Scenario Debugger
    • Tools
  • Best practices
    • Names, labels & descriptions
    • Base
    • Connections
    • Modules
    • Action and search modules
    • Action modules
    • Search modules
    • Update modules
    • Trigger modules
    • Remote Procedure Calls
    • Static parameters
    • Mappable parameters
    • Processing of input parameters
    • Processing of output parameters
    • Groups
  • Useful resources
  • App logo
  • App visibility
  • App review
    • App review prerequisites
    • Request app review
    • Review status
    • Approved app
  • Terms of approved app maintenance
  • Updating your app
    • Private/Public apps
    • Approved apps
      • Tracking code changes
      • Approval of changes in approved app
      • Managing breaking changes
  • App structure
    • Base
      • Base URL
      • Authorization
      • Error handling
      • Sanitization
      • Advanced inheritance
    • Connections
      • Basic connection
      • JWT
      • OAuth 1.0
      • OAuth 2.0
    • Webhooks
      • Shared
      • Dedicated
        • Attached
        • Not attached
    • Modules
      • Action
        • Module Actions
        • Components
      • Search
      • Trigger (polling)
      • Instant Trigger (webhook)
      • Universal Module
        • REST
        • GraphQL
      • Responder
    • Remote Procedure Calls
      • Components
      • Types of RPCs
        • Dynamic Options RPC
        • Dynamic Fields RPC
        • Dynamic Sample RPC
      • Available IML Variables
    • Custom IML functions
      • Dynamic mappable parameters
      • Handling of full update approach in update modules
      • Removal of empty collections and nulls
    • Groups
  • App blocks
    • Communication
      • Making Requests
      • Multiple Requests
      • Handling Responses
        • Type
        • Valid
        • Error
        • Limit
        • Iterate
        • Temp
        • Output
      • Pagination
      • IML Variables
      • Request-less Communication
      • Multipart/form-data
      • Buffer
    • Static parameters
    • Mappable parameters
    • Interface
    • Epoch
    • Samples
    • Scope
    • Scope List
  • App components
    • Data Types
    • Parameters
      • Array
      • Boolean
      • Buffer
      • Cert
      • Collection
      • Color
      • Date
      • Email
      • Filename
      • Folder, File
      • Filter
      • Hidden
      • Integer, Uinteger
      • Number
      • Password
      • Path
      • Pkey
      • Port
      • Select
      • Text
      • Time
      • Timestamp
      • Timezone
      • URL
      • UUID
    • JavaScript in Make
  • Other
    • Processing of 'empty' Values
    • Processing of JSON strings inside a JSON object
  • Apps Marketplace Beta
    • About
    • How does it work
    • Terms and conditions
    • Tips and tricks
      • Control of access in apps using basic connection
Powered by GitBook

Resources

  • Academy
  • Community
  • Help Center

Useful links

  • Support
  • Privacy Notice
  • Status Page
  • make.com

Follow us

  • LinkedIn
  • X (Twitter)
  • Facebook
  • Instagram

© 2025 make.com

On this page
  • Specification
  • spec
  • validate
  • mode
  • labels
  • editable (deprecated)
  • Examples
  • Primitive Array
  • Complex Array
  • Complex Array with labeled collections
  • Amount of Items
  • Mode
  • Custom Labels
  • Editable Array (deprecated)
  • Editable Array with Help (deprecated)
Export as PDF
  1. App components
  2. Parameters

Array

Array of items of the same type.

Specification

spec

  • Describes the data structure of array items.

  • Parameters inside spec use the syntax of the regular parameters.

  • Available types:

Type
Specification

array

The output will be an array of Objects.

object

The output will be an array of primitive types. If the object contains a name, it will be ignored.

{
	"name": "tags",
	"spec": {
		"type": "text",
		"label": "Tag"
	},
	"type": "array",
	"label": "Tags"
}
{
	"name": "contacts",
	"spec": [
		{
			"name": "email",
			"type": "email",
			"label": "Email"
		},
		{
			"name": "name",
			"type": "text",
			"label": "Name"
		}
	],
	"type": "array",
	"label": "Contacts"
}

When no spec is provided, the array will behave as a primitive array of strings. However, the preferred approach is setting the spec to {"type": "text"}.

validate

  • Type: Object

  • Collection of validation directives.

  • Available parameters:

Parameter
Type
Specification

maxItems

number

Specifies maximum length that an array parameter can have.

minItems

number

Specifies minimum length that an array parameter can have.

enum

array

Array of allowed values in the array.

mode

  • Type: String

  • If editable (or editable.enabled) is set to true , you can use this option to set the initial mode of the field.

  • Allowed values are edit and choose.

labels

  • Available parameters:

Parameter
Type
Specification

add

string

Default: Add item. The text which is displayed on the adding button.

edit (deprecated)

string

Default: Edit item. The text which is displayed on the item edit button.

field (deprecated)

string

If no spec is provided, this field can be used as a label for the text input.

editable (deprecated)

  • Type: Boolean or Object

  • If set to true , the user can map the value of the array.

  • Available parameters:

Parameter
Type
Specification

enabled

boolean

Defines if the value can be mapped or not.

help

string

An alternative help text which is shown only when the editation is turned on.

Examples

Primitive Array

The primitive array is an array of simple variables, like numbers or strings.

[
	{
		"name": "tags",
		"spec": {
			"type": "text",
			"label": "Tag"
		},
		"type": "array",
		"label": "Tags"
	}
]
["old", "new"]

Complex Array

The complex array is an array of complex objects - collections.

[
	{
		"name": "contacts",
		"spec": [
			{
				"name": "email",
				"type": "email",
				"label": "Email"
			},
			{
				"name": "name",
				"type": "text",
				"label": "Name"
			}
		],
		"type": "array",
		"label": "Contacts"
	}
]
[
    {
        "name": "John Doe",
        "email": "john@doe.com"
    },
    {
        "name": "Foo Bar",
        "email": "foo@bar.baz"
    }
]

Complex Array with labeled collections

```json
[
	{
		"name": "contacts",
		"spec": {
			"type": "collection",
			"label": "Contact",
			"spec": [
				{
					"name": "email",
					"type": "email",
					"label": "Email"
				},
				{
					"name": "name",
					"type": "text",
					"label": "Name"
				}
			]
	},
		"type": "array",
		"label": "Contacts"
	}
]
```
[
    {
        "name": "John Doe",
        "email": "john@doe.com"
    },
    {
        "name": "Foo Bar",
        "email": "foo@bar.baz"
    }
]

Amount of Items

You can use the validate object to set minItems and maxItems to control the minimum and/or maximum amount of items in the array.

[
	{
		"name": "members",
		"type": "array",
		"label": "Members",
		"validate": {
			"minItems": 1,
			"maxItems": 4
		}
	}
]

Mode

When the array is editable , you can set the default state by using mode.

[
	{
		"name": "choose",
		"type": "array",
		"label": "Choosable array",
		"mode": "choose"
	},
	{
		"name": "edit",
		"type": "array",
		"label": "Editable array",
		"mode": "edit"
	}
]

Custom Labels

You can customize the button labels using the labels object.

[
	{
		"name": "labels",
		"type": "array",
		"label": "Customized array",
		"labels": {
			"add": "Add an item to my array"
		}
	}
]

Editable Array (deprecated)

Since Apps platform version 2, all arrays are mappable(editable) by default.

When editable is set to true , you can map an array from another module to the array parameter.

[
	{
		"name": "items",
		"type": "array",
		"label": "Items",
		"editable": true
	}
]

Editable Array with Help (deprecated)

Since Apps platform version 2, this can be achieved by using the mappable directive and looks exactly the same using the mappable.help . It is not needed to set enabled to true anymore because that is set by default.

By setting help inside the editable object, you can set the help text which is shown when the mappable toggle is turned on. Don't forget to set editable.enabled to true .

[
	{
		"name": "items",
		"type": "array",
		"label": "Items",
		"editable": {
			"enabled": true,
			"help": "You can map your own array here."
		}
	}
]
PreviousParametersNextBoolean

Last updated 4 months ago

Example of Primitive Array
Example of Complex Array
Example of labeled array
Error Message after Attempt to Save the Module
Mode Edit
Custom Labels per Item
Example of Editable Array
Example of Help under Array with Editable Set