Best answer

Remove item from Line-Items object and/or output Line-items from Code step

  • 6 March 2020
  • 3 replies
  • 651 views

Userlevel 1

Hi,

it's been several times that I got stuck with this one: I don't understand how to output Line-Items with a Code step?

Is it even possible?

For example:

  • I build Line-Items from a JSON
  • In these Line-Items, I would like to remove some of them, based on various criteria
  • Then output Line-Items and use them in a further step

Here is something I tried:

image.png But, on a further step, I don't get Line-Items but separate values:

image.pngSo, how to manipulate Line-Items into a Code step and get Line-Items as the output?

I feel like I'm missing something...

Thanks,

Alex

PS: more explanation on the "why".

  • I got my data from a Typeform entry in which I can get between 1 and 5 emails (plus other data)
  • So, I got empty row that I want to remove
  • That's why I build a Line-Items object then try to remove the useless ones


icon

Best answer by ikbelkirasan 10 March 2020, 11:42

Hi @AndrewJDavison_Luhhu and @Ulule

@Ulule - You are currently setting the output to something like this:

[

{

0: {

email: "...",

address: "..."

},

1: {

email: "...",

address: "..."

},

2: {

email: "...",

address: "..."

}

//...etc

}

];

However, what you're looking for is something like this:

[

{

items: {

0: {

email: "...",

address: "..."

},

1: {

email: "...",

address: "..."

},

2: {

email: "...",

address: "..."

}

//...etc

}

}

];

Or this:

[

{

items: [

{

email: "...",

address: "..."

},

{

email: "...",

address: "..."

},

{

email: "...",

address: "..."

}

// etc

]

}

];

As you can see, the output should be an array that contains a single object that has key (called items here but it could be anything) which has an object or an array as a value.

So in order to output line items, you should change the last line in your code to:

output = [

{

items: output

}

];

Hope this helps.

image.png


View original

This topic has been closed for comments

3 replies

Userlevel 7
Badge +10

Hi @Ulule

I'm tagging @ikbelkirasan who is the resident coding expert around here.


Userlevel 7
Badge +11

Hi @AndrewJDavison_Luhhu and @Ulule

@Ulule - You are currently setting the output to something like this:

[

{

0: {

email: "...",

address: "..."

},

1: {

email: "...",

address: "..."

},

2: {

email: "...",

address: "..."

}

//...etc

}

];

However, what you're looking for is something like this:

[

{

items: {

0: {

email: "...",

address: "..."

},

1: {

email: "...",

address: "..."

},

2: {

email: "...",

address: "..."

}

//...etc

}

}

];

Or this:

[

{

items: [

{

email: "...",

address: "..."

},

{

email: "...",

address: "..."

},

{

email: "...",

address: "..."

}

// etc

]

}

];

As you can see, the output should be an array that contains a single object that has key (called items here but it could be anything) which has an object or an array as a value.

So in order to output line items, you should change the last line in your code to:

output = [

{

items: output

}

];

Hope this helps.

image.png


Userlevel 1

@ikbelkirasan thank you so much for your answer, yeah it solves my issue!

So basically I need to "re-build" a new set of items.

Zapier Support had answered as well and they gave me the same answer about the Output that must be an array.

Thank you again!