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
  • How Make Evaluates Empty Values
  • When the erase Pill is Shown
Export as PDF
  1. Other

Processing of 'empty' Values

This document describes how Make processes mapped values and how the values are passed to a service.

PreviousJavaScript in MakeNextProcessing of JSON strings inside a JSON object

Last updated 4 months ago

The new approach for processing empty values, as described in this document, is applicable only for apps with Apps platform version 2 (apps created after 11/02/2019). Apps with Apps platform version 1 behave according to the old rules due to backward compatibility.

In this approach, almost every input parameter of a module is ignored if there is no value. In the case where the user wants to rewrite(erase) the value of a field in service, the user has to use the erase keyword. Here is an example of how to erase the values for the Query string and Body fields.

The processing of "empty" values is completely managed by Make. So, the developer doesn't have to implement this in his/her app. Bear in mind though that when an empty value comes to a module, then there was an intent for that and a value still has to be sent to the service.

To further explain the reason for the new processing approach, here is an example. When a user updates a task, and in the module config there is a multiple-select with labels that they leave untouched, it is unclear what action should be performed. Does this mean that they want to leave the task labels unchanged or want to remove all the labels?

The new behavior for parameter processing solves the problem mentioned above. By default, if the user doesn't select any label, Make will ignore the field. If the user wants to remove all assigned labels from the task, they have to use the erase keyword.

How Make Evaluates Empty Values

The table below describes how Make evaluates mapped values into the module config:

Type of empty value
Manifest 1.0
Manifest 2.0 implicit behavior
Manifest 2.0 field with erase pill (map mode)

string

null

undefined

null

string (forced empty string using IML)

""

""

​

number

null

undefined

null

boolean

undefined

undefined

undefined

array

[]

undefined

[]

multiple select

[]

undefined

[]

select (nothing selected)

null

undefined

​

select (selected value is"")

null

undefined

​

select (selected value is null)

invalid value

invalid value

​

select (map mode)

null

undefined

null

collection

not changed (collection of empty values)

Recursively processed corresponding to the rules in this table

Recursively processed corresponding to the rules in this table

When the erase Pill is Shown

The Erase keyword is shown for the update and universal modules.

The type of module is defined in the metadata of a module. A universal module is a module without a defined module action field.

Example of erase use
Universal module