{"id":1608,"date":"2022-10-25T13:28:21","date_gmt":"2022-10-25T12:28:21","guid":{"rendered":"https:\/\/frenchtouchdreamin.com\/?p=1608"},"modified":"2023-11-04T17:21:16","modified_gmt":"2023-11-04T16:21:16","slug":"declarative-webhooks-build-custom-rest-api-integrations-with-clicks-not-code","status":"publish","type":"post","link":"https:\/\/frenchtouchdreamin.com\/index.php\/2022\/10\/25\/declarative-webhooks-build-custom-rest-api-integrations-with-clicks-not-code\/","title":{"rendered":"Declarative Webhooks: Build custom REST API integrations with clicks, not code."},"content":{"rendered":"<p>Wouldn\u2019t it be great if we can implement an integration that:<\/p>\n<ul>\n<li>Is not a middleware solution<\/li>\n<li>Does not require writing apex code<\/li>\n<li>Is easy to setup and update even without a sandbox<\/li>\n<li>Is reliable and robust<\/li>\n<li>Is flexible and allows you to communicate with any JSON based REST API<\/li>\n<li>Can be declaratively embedded in your business process<\/li>\n<li>Is secure and native to the Salesforce platform<\/li>\n<\/ul>\n<p>That\u2019s where Declarative Webhooks comes in!<\/p>\n<p><a href=\"https:\/\/omnitoria.io\/\">Omnitoria<\/a> spent many years building integration after integration for their clients! It was time to use the experience to put the power and flexibility in the hands of Salesforce administrators! That\u2019s how Declarative Webhooks was born!<\/p>\n<p><a href=\"http:\/\/appexchange.salesforce.com\/listingDetail?listingId=a0N4V00000FNBsKUAX\">Declarative Webhooks<\/a> is an Appexchange app that you can install in your Salesforce org and use to connect and communicate with any REST API, without writing code.<\/p>\n<p>&nbsp;<\/p>\n<h2><strong>Outbound calls<\/strong><\/h2>\n<p>In order to connect to an external API service, you can use a Callout Template. That\u2019s where you define how the callout looks like, build the JSON body and setup the call actions.<\/p>\n<p>Building the JSON body is simple yet powerful, using the JSON Builder. It allows you to build any complex JSON structure, map fields from the main object, related objects, related lists, etc. You can also use formulas to transform the value of the nodes.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter wp-image-1628 size-full\" src=\"http:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog1.png\" alt=\"\" width=\"821\" height=\"721\" srcset=\"https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog1.png 821w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog1-300x263.png 300w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog1-768x674.png 768w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog1-212x186.png 212w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog1-279x245.png 279w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog1-269x236.png 269w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog1-214x188.png 214w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog1-487x428.png 487w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog1-443x389.png 443w\" sizes=\"(max-width: 821px) 100vw, 821px\" \/><\/p>\n<p>After making the call, you can set up actions that run automatically with every callout. You can create and update records, related lists, you can run flows and even apex.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter wp-image-1626 size-full\" src=\"http:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog2.png\" alt=\"\" width=\"1893\" height=\"695\" srcset=\"https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog2.png 1893w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog2-300x110.png 300w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog2-1024x376.png 1024w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog2-768x282.png 768w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog2-1536x564.png 1536w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog2-212x78.png 212w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog2-400x147.png 400w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog2-355x130.png 355w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog2-306x112.png 306w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog2-642x236.png 642w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog2-978x359.png 978w\" sizes=\"(max-width: 1893px) 100vw, 1893px\" \/><\/p>\n<p>You can set up the call to run automatically by including it into Record-Triggered Flows, Process Builder or schedule it to run at a desired time. You can have the users run it manually by adding buttons to record pages or including it in Screen Flows.<\/p>\n<p>If there are multiple calls that you need to make, you can use a Callout Sequence. That\u2019s where you define a sequence of callouts to make, one after another.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter wp-image-1627 size-full\" src=\"http:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog3.png\" alt=\"\" width=\"775\" height=\"525\" srcset=\"https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog3.png 775w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog3-300x203.png 300w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog3-768x520.png 768w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog3-212x144.png 212w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog3-362x245.png 362w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog3-348x236.png 348w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog3-278x188.png 278w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog3-632x428.png 632w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog3-574x389.png 574w\" sizes=\"(max-width: 775px) 100vw, 775px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2><strong>Inbound Calls<\/strong><\/h2>\n<p>With Declarative Webhooks, you can set up your Salesforce org to receive REST API calls from an external system, without writing any apex.<\/p>\n<p>Using the same JSON Builder, you can define what you expect the payload to be and what actions to take when you receive the call. Just like for the outbound calls, you can create or update records, related lists or run flows and even apex code.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter wp-image-1629 size-full\" src=\"http:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog4.png\" alt=\"\" width=\"1874\" height=\"561\" srcset=\"https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog4.png 1874w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog4-300x90.png 300w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog4-1024x307.png 1024w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog4-768x230.png 768w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog4-1536x460.png 1536w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog4-212x63.png 212w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog4-400x120.png 400w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog4-355x106.png 355w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog4-306x92.png 306w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog4-642x192.png 642w, https:\/\/frenchtouchdreamin.com\/wp-content\/uploads\/2022\/10\/Omnivo-Blog4-978x293.png 978w\" sizes=\"(max-width: 1874px) 100vw, 1874px\" \/><\/p>\n<p>Then you can define how to answer to the inbound call, with a different message format for different response codes.<\/p>\n<p>Isn\u2019t that awesome? You now have the power to build complex REST API integrations without writing a single line of apex code!<\/p>\n<p>All thanks to Declarative Webhooks! Download now from Appexchange!<br \/>\n<a href=\"http:\/\/appexchange.salesforce.com\/listingDetail?listingId=a0N4V00000FNBsKUAX\">http:\/\/appexchange.salesforce.com\/listingDetail?listingId=a0N4V00000FNBsKUAX<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wouldn\u2019t it be great if we can implement an integration that: Is not a middleware solution Does not require writing apex code Is easy to setup and update even without a sandbox Is reliable and robust Is flexible and allows you to communicate with any JSON based REST API Can be declaratively embedded in your [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":1982,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[40,1],"tags":[],"_links":{"self":[{"href":"https:\/\/frenchtouchdreamin.com\/index.php\/wp-json\/wp\/v2\/posts\/1608"}],"collection":[{"href":"https:\/\/frenchtouchdreamin.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/frenchtouchdreamin.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/frenchtouchdreamin.com\/index.php\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/frenchtouchdreamin.com\/index.php\/wp-json\/wp\/v2\/comments?post=1608"}],"version-history":[{"count":5,"href":"https:\/\/frenchtouchdreamin.com\/index.php\/wp-json\/wp\/v2\/posts\/1608\/revisions"}],"predecessor-version":[{"id":1634,"href":"https:\/\/frenchtouchdreamin.com\/index.php\/wp-json\/wp\/v2\/posts\/1608\/revisions\/1634"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/frenchtouchdreamin.com\/index.php\/wp-json\/wp\/v2\/media\/1982"}],"wp:attachment":[{"href":"https:\/\/frenchtouchdreamin.com\/index.php\/wp-json\/wp\/v2\/media?parent=1608"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/frenchtouchdreamin.com\/index.php\/wp-json\/wp\/v2\/categories?post=1608"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/frenchtouchdreamin.com\/index.php\/wp-json\/wp\/v2\/tags?post=1608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}