{"id":2559,"date":"2021-11-08T17:51:07","date_gmt":"2021-11-08T23:51:07","guid":{"rendered":"https:\/\/www.teamdesk.net\/blog\/?p=2559"},"modified":"2022-01-21T11:16:35","modified_gmt":"2022-01-21T17:16:35","slug":"third-party-accounts","status":"publish","type":"post","link":"https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/","title":{"rendered":"Third-party accounts"},"content":{"rendered":"\n<p>Today we introduce a subtle but handy change by extracting Call URL&#8217;s Authorization section into separate entity: <a href=\"https:\/\/www.teamdesk.net\/help\/15.15.aspx\">Third-party accounts<\/a>.<\/p>\n\n\n\n<p>Authorization block embedded directly into Call URL action served as well, but as we extend <a href=\"https:\/\/www.teamdesk.net\">TeamDesk<\/a> workflow functionality and integrations with third-party systems become more complex it starts to pose a problem.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">An example<\/h2>\n\n\n\n<p>Consider Google Calendar synchronization.  There is the <a href=\"https:\/\/www.teamdesk.net\/blog\/whats-new\/webhooks-in-teamdesk\/\">webhook<\/a>. You should first <em>subscribe<\/em> your webhook to receive change notifications. Then calendar calls the webhook and you should request the <em>list<\/em> of changes. Then for each event in the list <em>get<\/em> the event&#8217;s data. Finally, if you want to pause syncing you should <em>unsubscribe <\/em>your webhook. <\/p>\n\n\n\n<p>Altogether you&#8217;d need a Webhook and four <a href=\"https:\/\/www.teamdesk.net\/help\/11.4.5.aspx\">Call URL actions<\/a>: Subscribe, List, Get and Unsubscribe. All four require a read-only API access to your calendar. <\/p>\n\n\n\n<p>Now, suppose you finished testing synchronization with your calendar. Now you want to use shared one, available through different account. What do you need? Accurately change access credentials for each of four actions. Because if you forgot one, synchronization may go awry.<\/p>\n\n\n\n<p>For Basic authorization you can store shared login and password into application variable and pass it to the service using headers. The downside of this approach is that login credentials are stored in a plain text. However, variables approach won&#8217;t work for <a href=\"https:\/\/en.wikipedia.org\/wiki\/OAuth\">OAuth 2<\/a> protocol. It uses an access token with a limited lifetime that rotates periodically and requires special treatment baked into Call URL actions code.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The solution:  Third-party Accounts<\/h2>\n\n\n\n<p>So, we added new Third-party Accounts list on a database level. You can find it in <em>Setup<\/em> | <em>Database<\/em> tab | <em>Tools<\/em> | <em>3rd-party accounts<\/em>. There you can set authorization type, usernames, passwords and tokens and then reuse the same account in multiple actions. You can now pick up an existing account in Call URL action&#8217;s interface if there is any suitable. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.teamdesk.net\/blog\/wp-content\/uploads\/2021\/11\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"343\" src=\"https:\/\/www.teamdesk.net\/blog\/wp-content\/uploads\/2021\/11\/image-1024x343.png\" alt=\"\" class=\"wp-image-2562\" srcset=\"https:\/\/www.teamdesk.net\/blog\/wp-content\/uploads\/2021\/11\/image-1024x343.png 1024w, https:\/\/www.teamdesk.net\/blog\/wp-content\/uploads\/2021\/11\/image-300x101.png 300w, https:\/\/www.teamdesk.net\/blog\/wp-content\/uploads\/2021\/11\/image-768x258.png 768w, https:\/\/www.teamdesk.net\/blog\/wp-content\/uploads\/2021\/11\/image.png 1348w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Or you can create new one without having to leave action UI.<\/p>\n\n\n\n<p>We converted authorization of existing Call URL actions to Third-party accounts, one account per action. <\/p>\n\n\n\n<p>As a bonus, Third-party accounts support new authorization type: Tokens.<\/p>\n\n\n\n<p>Enjoy!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We added new Third-party Accounts list on a database level. There you can set authorization type, usernames, passwords and tokens and then reuse the same account in multiple actions.<\/p>\n","protected":false},"author":4,"featured_media":2561,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[249,223,247,225,246,248,250,222],"class_list":["post-2559","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-whats-new","tag-authorization","tag-call-url","tag-call-url-actions","tag-synchronization","tag-third-party-accounts","tag-tokens","tag-webhook","tag-webhooks"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Third-party accounts - TeamDesk Blog<\/title>\n<meta name=\"description\" content=\"Today we introduce a subtle but handy change by extracting Call URL&#039;s Authorization section into separate entity: Third-party accounts.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Third-party accounts - TeamDesk Blog\" \/>\n<meta property=\"og:description\" content=\"Today we introduce a subtle but handy change by extracting Call URL&#039;s Authorization section into separate entity: Third-party accounts.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/\" \/>\n<meta property=\"og:site_name\" content=\"TeamDesk Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-11-08T23:51:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-21T17:16:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.teamdesk.net\/blog\/wp-content\/uploads\/2021\/11\/254081172_254130443431145_575355863909225531_n.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1842\" \/>\n\t<meta property=\"og:image:height\" content=\"1127\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Kirill Bondar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirill Bondar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/whats-new\\\/third-party-accounts\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/whats-new\\\/third-party-accounts\\\/\"},\"author\":{\"name\":\"Kirill Bondar\",\"@id\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/#\\\/schema\\\/person\\\/22c4c05bd657513c8b00122fa364c8d2\"},\"headline\":\"Third-party accounts\",\"datePublished\":\"2021-11-08T23:51:07+00:00\",\"dateModified\":\"2022-01-21T17:16:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/whats-new\\\/third-party-accounts\\\/\"},\"wordCount\":343,\"commentCount\":5,\"image\":{\"@id\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/whats-new\\\/third-party-accounts\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/254081172_254130443431145_575355863909225531_n.png\",\"keywords\":[\"authorization\",\"call url\",\"call url actions\",\"synchronization\",\"third-party accounts\",\"tokens\",\"webhook\",\"webhooks\"],\"articleSection\":[\"What's New\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/whats-new\\\/third-party-accounts\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/whats-new\\\/third-party-accounts\\\/\",\"url\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/whats-new\\\/third-party-accounts\\\/\",\"name\":\"Third-party accounts - TeamDesk Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/whats-new\\\/third-party-accounts\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/whats-new\\\/third-party-accounts\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/254081172_254130443431145_575355863909225531_n.png\",\"datePublished\":\"2021-11-08T23:51:07+00:00\",\"dateModified\":\"2022-01-21T17:16:35+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/#\\\/schema\\\/person\\\/22c4c05bd657513c8b00122fa364c8d2\"},\"description\":\"Today we introduce a subtle but handy change by extracting Call URL's Authorization section into separate entity: Third-party accounts.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/whats-new\\\/third-party-accounts\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/whats-new\\\/third-party-accounts\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/whats-new\\\/third-party-accounts\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/254081172_254130443431145_575355863909225531_n.png\",\"contentUrl\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/254081172_254130443431145_575355863909225531_n.png\",\"width\":1842,\"height\":1127,\"caption\":\"Thrid-party accounts\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/whats-new\\\/third-party-accounts\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Third-party accounts\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/\",\"name\":\"TeamDesk Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/#\\\/schema\\\/person\\\/22c4c05bd657513c8b00122fa364c8d2\",\"name\":\"Kirill Bondar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc5bc844095b5753ccc73c589c028bf16615674f289668146bbd59205a08a52d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc5bc844095b5753ccc73c589c028bf16615674f289668146bbd59205a08a52d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc5bc844095b5753ccc73c589c028bf16615674f289668146bbd59205a08a52d?s=96&d=mm&r=g\",\"caption\":\"Kirill Bondar\"},\"url\":\"https:\\\/\\\/www.teamdesk.net\\\/blog\\\/author\\\/kirill-bondar\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Third-party accounts - TeamDesk Blog","description":"Today we introduce a subtle but handy change by extracting Call URL's Authorization section into separate entity: Third-party accounts.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/","og_locale":"en_US","og_type":"article","og_title":"Third-party accounts - TeamDesk Blog","og_description":"Today we introduce a subtle but handy change by extracting Call URL's Authorization section into separate entity: Third-party accounts.","og_url":"https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/","og_site_name":"TeamDesk Blog","article_published_time":"2021-11-08T23:51:07+00:00","article_modified_time":"2022-01-21T17:16:35+00:00","og_image":[{"width":1842,"height":1127,"url":"https:\/\/www.teamdesk.net\/blog\/wp-content\/uploads\/2021\/11\/254081172_254130443431145_575355863909225531_n.png","type":"image\/png"}],"author":"Kirill Bondar","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirill Bondar","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/#article","isPartOf":{"@id":"https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/"},"author":{"name":"Kirill Bondar","@id":"https:\/\/www.teamdesk.net\/blog\/#\/schema\/person\/22c4c05bd657513c8b00122fa364c8d2"},"headline":"Third-party accounts","datePublished":"2021-11-08T23:51:07+00:00","dateModified":"2022-01-21T17:16:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/"},"wordCount":343,"commentCount":5,"image":{"@id":"https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/#primaryimage"},"thumbnailUrl":"https:\/\/www.teamdesk.net\/blog\/wp-content\/uploads\/2021\/11\/254081172_254130443431145_575355863909225531_n.png","keywords":["authorization","call url","call url actions","synchronization","third-party accounts","tokens","webhook","webhooks"],"articleSection":["What's New"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/","url":"https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/","name":"Third-party accounts - TeamDesk Blog","isPartOf":{"@id":"https:\/\/www.teamdesk.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/#primaryimage"},"image":{"@id":"https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/#primaryimage"},"thumbnailUrl":"https:\/\/www.teamdesk.net\/blog\/wp-content\/uploads\/2021\/11\/254081172_254130443431145_575355863909225531_n.png","datePublished":"2021-11-08T23:51:07+00:00","dateModified":"2022-01-21T17:16:35+00:00","author":{"@id":"https:\/\/www.teamdesk.net\/blog\/#\/schema\/person\/22c4c05bd657513c8b00122fa364c8d2"},"description":"Today we introduce a subtle but handy change by extracting Call URL's Authorization section into separate entity: Third-party accounts.","breadcrumb":{"@id":"https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/#primaryimage","url":"https:\/\/www.teamdesk.net\/blog\/wp-content\/uploads\/2021\/11\/254081172_254130443431145_575355863909225531_n.png","contentUrl":"https:\/\/www.teamdesk.net\/blog\/wp-content\/uploads\/2021\/11\/254081172_254130443431145_575355863909225531_n.png","width":1842,"height":1127,"caption":"Thrid-party accounts"},{"@type":"BreadcrumbList","@id":"https:\/\/www.teamdesk.net\/blog\/whats-new\/third-party-accounts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.teamdesk.net\/blog\/"},{"@type":"ListItem","position":2,"name":"Third-party accounts"}]},{"@type":"WebSite","@id":"https:\/\/www.teamdesk.net\/blog\/#website","url":"https:\/\/www.teamdesk.net\/blog\/","name":"TeamDesk Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.teamdesk.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.teamdesk.net\/blog\/#\/schema\/person\/22c4c05bd657513c8b00122fa364c8d2","name":"Kirill Bondar","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/dc5bc844095b5753ccc73c589c028bf16615674f289668146bbd59205a08a52d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/dc5bc844095b5753ccc73c589c028bf16615674f289668146bbd59205a08a52d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dc5bc844095b5753ccc73c589c028bf16615674f289668146bbd59205a08a52d?s=96&d=mm&r=g","caption":"Kirill Bondar"},"url":"https:\/\/www.teamdesk.net\/blog\/author\/kirill-bondar\/"}]}},"_links":{"self":[{"href":"https:\/\/www.teamdesk.net\/blog\/wp-json\/wp\/v2\/posts\/2559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.teamdesk.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.teamdesk.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.teamdesk.net\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.teamdesk.net\/blog\/wp-json\/wp\/v2\/comments?post=2559"}],"version-history":[{"count":6,"href":"https:\/\/www.teamdesk.net\/blog\/wp-json\/wp\/v2\/posts\/2559\/revisions"}],"predecessor-version":[{"id":2644,"href":"https:\/\/www.teamdesk.net\/blog\/wp-json\/wp\/v2\/posts\/2559\/revisions\/2644"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.teamdesk.net\/blog\/wp-json\/wp\/v2\/media\/2561"}],"wp:attachment":[{"href":"https:\/\/www.teamdesk.net\/blog\/wp-json\/wp\/v2\/media?parent=2559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.teamdesk.net\/blog\/wp-json\/wp\/v2\/categories?post=2559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.teamdesk.net\/blog\/wp-json\/wp\/v2\/tags?post=2559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}