How to manually map fields that do not appear in the sample data (aka "custom pill mapping")

  • 19 May 2021
  • 2 replies
How to manually map fields that do not appear in the sample data (aka "custom pill mapping")
Userlevel 4

Hi all, this is Erin Oz from the Zapier Premier Support Team with a tip for creating custom “pills” to map fields in Zapier. 

Background Info

Some apps have a hard-coded sample that is retrieved when creating a new trigger. In apps that allow custom fields, this can lead to a situation where the custom fields you’d like to use later in the Zap’s action steps are not shown in the sample. 

This often leads to placeholder errors, because the field sent in a live call is different than the field mapped from the sample. 


For example, let’s say your trigger pulls in a default sample that shows an Address field:


(view larger)

You build your Zap, and you map the Address to the destination field in your action step. 


(view larger)

But in your live form, the address field is called “Street Address”. When you turn your Zap on and it runs, you’ll see a placeholder error: 


(view larger)

This can be confusing, because the address field present in the sample was mapped! In this case, the problem is that the sample used the name “Address” for the field name, and the live run used the name “Street Address”. 

Whenever you see {{...}} curly braces around entries in the Data In of an action, this means that there is a field mapped there in the Zap Editor, but when the Zap ran live this data was not sent from a previous step.

What we can do is create a custom pill mapping with the field name we expect in the live sample.

Pill Mapping Code

If you were to copy and paste this pill showing “First Name: Steve” from the Zapier Editor into a plain text editor (or even your browser’s address bar, which will quickly remove any formatting in your pasted text), you will see code that looks like this:

{{122484559__First Name}}


(view larger)

This code is made up of two pieces, the Node ID of the step where that information is received and the name of the field where the data is being sent. These two pieces are separated by two underscores.

You can get the Node ID from the URL of the Zap:


(view larger)

For example, using the Zap at this URL:

Where we are trying to retrieve the field with a name of ‘Street Address’, the construction of this code will look like this:

{{90304568__Street Address}}

If the field is a key/value pair (like First Name: Steve), the key or field name can be used after double underscores, as shown in the example. 

In a case where the field is nested under another field (or multiple fields), each nest would be separated by double underscores. 

For example, if we were trying to retrieve the response for question 3 in the detail below:


The code would look like this:


If you need to extract a line-item array, use square brackets to separate the name of the array and the name of the field, as seen in the example below:


To extract the value in the field total of them all, the code would look like this:

{{90317686__line_items[]total of them all}}


A few tips regarding underscores and spaces:

  • If there are spaces in the field name, include those spaces in your code.

  • If the field name includes underscores, include these in your code as well. Be sure to use the correct number of underscores - if the field name has two underscores, your code should too.

2 replies

How should we extract similar elements fron an array. E.g. we have some array which has only one lineitem in sample data but there can be more in real data. Here’s how it looks:






When I copy element available from sample data for line item 1 I get “{{135274102__lineItems[]id}}”, there’s no lineitem number mentioned in element name. In your example I would want to get both quantity fields.

Userlevel 4

Hey @titsmaker, thanks for the question!

Referring back to my example, you would get both quantity fields by mapping `{{90317686__line_items[]quantity}}`. This pill mapping will deliver all line item values associated with that field name. Depending on the app you’re mapping it into, it will either appear as a string with all of the values separated by a comma, or can be further manipulated as an array. 

So for the array you’re working with, if you’d like to get the `lineItemId` values you can use the following: