Webhook emailed date issue

1160
5
Jump to solution
07-19-2018 08:33 AM
Highlighted
Occasional Contributor

I have created a webhook with Microsoft flow to send an email out when the survey is submitted but the date in the email returns as a long string of numbers ex: 

 I have it set up as a date type question in survey123 and it looks like this within the webhook:

I'm not sure what I'm doing wrong and help on this is much appreciated

1 Solution

Accepted Solutions
Highlighted
Esri Frequent Contributor

Hi. You can use the addseconds function as follows.

addseconds('1970-1-1', Div(triggerBody()?['feature']?['attributes']?['mydate'],1000) , 'yyyy-MM-dd')

For context, Survey123 date and time objects are expressed in UNIX time. UNIX time is the number of seconds elapsed since Jan 1 1970. With addseconds, you can get back a human friendly date and or time string.

This and some other tips on Microsoft Flow available at: https://community.esri.com/groups/survey123/blog/2018/07/19/automating-workflows-with-survey123-and-... 

View solution in original post

5 Replies
Highlighted
New Contributor III

It looks like the date is being exported in EPOCH time. See this link for an explanation of different date/time formats. I'm not sure how dates are handled when they are sent from Survey123 to other web apps but here is what I would try.

Create a calculated field in your survey (it should be hidden by default). In the calculate column try:

format-date(${[name of your date field]},'%m/%d/%Y')

This should create a new field with the date expressed as a string in the format MM/DD/YYYY. You should be able to reference this in your email webhook.

Note - you can customize the format however you need. The different options are listed on the link.

Highlighted
Occasional Contributor

Thanks Chris so with doing what you recommended you can't immediately see your attribute as an option in the Microsoft Webhook dynamic content list because it's hidden in your survey. So going onto expression I was able to just type it out as:

triggerBody()?['feature']?['attributes']?['Date']  and returned 

Thanks a bunch!

Reply
0 Kudos
Highlighted
Esri Frequent Contributor

Hi. You can use the addseconds function as follows.

addseconds('1970-1-1', Div(triggerBody()?['feature']?['attributes']?['mydate'],1000) , 'yyyy-MM-dd')

For context, Survey123 date and time objects are expressed in UNIX time. UNIX time is the number of seconds elapsed since Jan 1 1970. With addseconds, you can get back a human friendly date and or time string.

This and some other tips on Microsoft Flow available at: https://community.esri.com/groups/survey123/blog/2018/07/19/automating-workflows-with-survey123-and-... 

View solution in original post

Highlighted
Occasional Contributor III

If anyone wants to convert UNIX time into a readable date string using Integromat - use a similar expression to what's shown below.

{{formatDate(parseDate(substring(1.feature.attributes.dateTimeFieldName;0;10); "X"); "YYYY-MM-DD hh:mm A")}}

Highlighted
New Contributor III

Can we use this in the Source File > Map? To rename the file? or is there another process

Thank you!!

Reply
0 Kudos