{"id":25319,"date":"2020-10-29T11:18:29","date_gmt":"2020-10-29T11:18:29","guid":{"rendered":"https:\/\/www.inogic.com\/blog\/?p=25319"},"modified":"2020-11-18T07:46:59","modified_gmt":"2020-11-18T07:46:59","slug":"formatting-output-result-for-your-actions-in-custom-connector","status":"publish","type":"post","link":"https:\/\/www.inogic.com\/blog\/2020\/10\/formatting-output-result-for-your-actions-in-custom-connector\/","title":{"rendered":"Formatting Output result for your actions in Custom Connector"},"content":{"rendered":"<p style=\"text-align: justify;\">Continuing with the series on<a href=\"https:\/\/www.inogic.com\/blog\/2020\/08\/building-custom-connectors-for-power-apps-and-power-automate-flows-part-2\/\" target=\"_blank\" rel=\"noopener noreferrer\"> Custom Connector<\/a>, today I touch upon output results of your actions. If you have worked with any of the existing connectors including Common Data Service connectors, you will notice that when you choose an action like List or Read, the CRM record object returns individual field values of the record as properties that you can then easily use through the Dynamic Values option further in your flow.<\/p>\n<p>When creating a custom connector, say we return a JSON object as the result from the Azure function, you will notice that without any formatting, the output will appear as<\/p>\n<p><a href=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-1.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter wp-image-25321 size-full\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-1.png\" alt=\"Formatting Output result for your actions in Custom Connector\" width=\"371\" height=\"185\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-1.png 371w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-1-300x150.png 300w\" sizes=\"(max-width: 371px) 100vw, 371px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">The JSON object is available in the body but to read the individual properties from in there, you would need to use the expression in the form of<\/p>\n<p><strong>outputs(&#8216;GetEmployeeDetail&#8217;)?[&#8216;body\/FirstName&#8217;]<\/strong><\/p>\n<p>If the JSON result is of the form<\/p>\n<p><a href=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-2.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter wp-image-25322 size-full\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-2.png\" alt=\"Formatting Output result for your actions in Custom Connector\" width=\"676\" height=\"400\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-2.png 676w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-2-300x178.png 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-2-660x391.png 660w\" sizes=\"(max-width: 676px) 100vw, 676px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">While it is accessible through expression, it would be user friendly if we could have it available as a property that could be referenced directly as a field when listing dynamic values to choose from.<\/p>\n<p>For this make sure to define the response format in your custom connector<\/p>\n<p><a href=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-4.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter wp-image-25324 size-full\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-4.png\" alt=\"Formatting Output result for your actions in Custom Connector\" width=\"882\" height=\"319\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-4.png 882w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-4-300x109.png 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-4-768x278.png 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-4-660x239.png 660w\" sizes=\"(max-width: 882px) 100vw, 882px\" \/><\/a><\/p>\n<p>Double click on default to open the response editor<\/p>\n<p><a href=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-6.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter wp-image-25326 size-full\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-6.png\" alt=\"Formatting Output result for your actions in Custom Connector\" width=\"1490\" height=\"772\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-6.png 1490w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-6-300x155.png 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-6-768x398.png 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-6-1024x531.png 1024w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-6-660x342.png 660w\" sizes=\"(max-width: 1490px) 100vw, 1490px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">In the import from sample window provide the JSON object of your result, to see it populate the properties automatically<\/p>\n<p><a href=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-8.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter wp-image-25328 size-full\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-8.png\" alt=\"Formatting Output result for your actions in Custom Connector\" width=\"515\" height=\"349\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-8.png 515w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-8-300x203.png 300w\" sizes=\"(max-width: 515px) 100vw, 515px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">With this done, now when you look for the dynamic values for your action result, you will find it in the form of<\/p>\n<p><a href=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-10.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter wp-image-25330 size-full\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-10.png\" alt=\"Formatting Output result for your actions in Custom Connector\" width=\"896\" height=\"496\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-10.png 896w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-10-300x166.png 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-10-768x425.png 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-10-660x365.png 660w\" sizes=\"(max-width: 896px) 100vw, 896px\" \/><\/a><\/p>\n<p>Consider scenario where your JSON result is in nested JSON format as below.<\/p>\n<p><a href=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-12.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter wp-image-25332 size-full\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-12.png\" alt=\"Formatting Output result for your actions in Custom Connector\" width=\"660\" height=\"230\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-12.png 660w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-12-300x105.png 300w\" sizes=\"(max-width: 660px) 100vw, 660px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">In that if any of the field names is same in the entire JSON object irrespective of whether it is in parent or child node, it will appear as duplicate properties as below.<\/p>\n<p><a href=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-14.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter wp-image-25334 size-full\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-14.png\" alt=\"Formatting Output result for your actions in Custom Connector\" width=\"374\" height=\"308\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-14.png 374w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2020\/10\/Formatting-Output-result-for-your-actions-in-Custom-Connector-14-300x247.png 300w\" sizes=\"(max-width: 374px) 100vw, 374px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Be careful with your properties names in the JSON object to avoid this scenario.<\/p>\n<p>Make sure to set the response properties appropriately for your actions in <a href=\"https:\/\/www.inogic.com\/blog\/2020\/08\/building-custom-connectors-for-power-apps-and-power-automate-flows-part-1\/\" target=\"_blank\" rel=\"noopener noreferrer\">custom connector<\/a> to make it more user friendly.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Continuing with the series on Custom Connector, today I touch upon output results of your actions. If you have worked with any of the existing connectors including Common Data Service connectors, you will notice that when you choose an action like List or Read, the CRM record object returns individual field values of the record\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.inogic.com\/blog\/2020\/10\/formatting-output-result-for-your-actions-in-custom-connector\/\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":13,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2088,16,19,1985],"tags":[2089,545,592,1169,1338,1975],"class_list":["post-25319","post","type-post","status-publish","format-standard","hentry","category-custom-connector","category-dynamics-365","category-dynamics-crm","category-power-automate","tag-custom-connector","tag-dynamics-365-crm","tag-dynamics-crm","tag-microsoft-power-apps","tag-power-apps-dynamics-365-crm","tag-power-automate"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/posts\/25319","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/comments?post=25319"}],"version-history":[{"count":0,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/posts\/25319\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/media?parent=25319"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/categories?post=25319"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/tags?post=25319"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}