Unable to get itemMapping in POST content to my server

I’m unable to get the itemMapping in the POST content to my server as part of my custom action. I’m using the built-in trigger ‘When status changes to something’ and I’m setting the itemMapping as an input field in the custom action configuration. I’m also making sure to specify the trigger output as the input source. Are there any gotchas or any configurations that I might be missing? I’ve seen a couple of other topics that mention the same issue but I don’t see any solutions for them.


1 Like

Hello there @shyam-ayrshare,

What happens if you change the source to “Recipe sentence”?

Then the user will be able to click on that field to map your custom object pairing it with an item.

Is that the information you needed?

Cheers,
Matias

Maybe I should explain what I’m trying to do overall. If the status column changes to a particular value for an item, I want to send the contents of that item to my server in the POST content. I thought an item mapping was a way to get at the contents of an item. I don’t think I want to choose the recipe sentence as a source since that wouldn’t give me access to all the item content. I figured since the trigger output of the built-in trigger “when status changes to something” has an item mapping, I could use that as the source. Is my understanding correct? Thanks!

Hello again @shyam-ayrshare,

Dynamic mapping is usually used when you have an object in another platform and you want to pair the fields in that object with monday columns.

In this case, you could use the input field “Item” in your action and it should come from the trigger’s output.

That will give you the ID of the item in which the status change occurred.

You can then use that ID to query the column values via API.

I hope that helps!

Cheers,
Matias

Hm it seems as though the dynamic mapping way might be more efficient to get all the contents of an item. Instead of making an API call to get the item column values every time there’s a status change, if I set up dynamic mapping, I wouldn’t have to make that API call each time. I would just need to set up another endpoint that specifies the fields definitions and then configure things correctly in the custom action. Then, in the POST content, I would get the column values as per the field definitions. Is my understanding correct?

Hello again,

Yes. If you have an endpoint on your end to pair all fields of a custom object with the columns in your board, then you can do that.

Example of an endpoint for this:

app.post("/getFields", function(req, res) {
	return res.status(200).send([
		{ id: 'name', title: 'Name', outboundType: 'text', inboundTypes: ['text'] },
		{ id: 'desc', title: 'Description', outboundType: 'text', inboundTypes: ['empty_value', 'text', 'text_array'] },
		{ id: 'dueDate', title: 'Due Date', outboundType: 'date', inboundTypes: ['empty_value', 'date', 'date_time'] },
		{ id: 'people', title: 'People', outboundType: 'user_emails', inboundTypes: 'user_emails' }
	  ]);
	}
);

You will find the column values in req.body.payload.inputFields.columnValues when your run URL is called.

Let me know if you have any questions :slightly_smiling_face:

Cheers,
Matias

I got this working! Unfortunately, my items would need a file outbound type that I guess is not supported by dynamic mapping. Is there a work around at all to get at the file URL with dynamic mapping? Or would I just have to go with making an API call to get this? Thanks!

Hi @shyam-ayrshare,

Would the outbound type of text_with_label work for your use case?

You can see more on this type in our Mapping rules guide:

I have a column in item view which has a ‘File’ type. I’m trying to get the urls of the uploaded files in the custom action POST content. With outbound type text_with_label, I’m not able to map this column onto my custom entity. This column isn’t showing up as an option.

Is there a workaround to get the file URLS into the custom action POST content? If not, I guess I’ll make an API call to get the file URLs explicitly. Thanks!

Hello there @shyam-ayrshare,

I believe there is no workaround here but I will double-check with the team and let you know!

Hello again @shyam-ayrshare,

No workarounds here. You will have to query for that information in another request.

Let me know if you have any other questions :slightly_smiling_face:

Cheers,
Matias