Citrix Developer Solutions Podcast

S1E8 - Podio Deep Dive 1: "Manipulation of Podio Tags via API"

March 04, 2019 Brick Bridge Consulting Season 1 Episode 8
Citrix Developer Solutions Podcast
S1E8 - Podio Deep Dive 1: "Manipulation of Podio Tags via API"
Chapters
Citrix Developer Solutions Podcast
S1E8 - Podio Deep Dive 1: "Manipulation of Podio Tags via API"
Mar 04, 2019 Season 1 Episode 8
Brick Bridge Consulting

Podcast Outline – Season 1 – Episode 8 – Podio Deep Dive 1: "Manipulation of Podio Tags"

Discussion Outline:

  1. Introduction – Welcome to the Series - Podio Deep Dive
  2. Topic:  "Manipulation of Podio Tags"
  3. 1st Discussion: Business Case - What types of Solutions would require this type of API buildout?
  4. 2nd Discussion: What is in the API to allow this? What are the necessities and methods to make this happen?
  5. Deep Dive: How can developers leverage the Podio API in this Use Case?
  6. Up Next Episode: Scaling Podio Solutions 1
  7. Audience Engagement: Solving Podio Gaps – Listener Forum
  8. Outro: SUBSCRIBE and Thank you.

LINKS:

http://www.brickbridgeconsulting.com

Support the show (https://www.buymeacoffee.com/brickbridge)

Show Notes Transcript

Podcast Outline – Season 1 – Episode 8 – Podio Deep Dive 1: "Manipulation of Podio Tags"

Discussion Outline:

  1. Introduction – Welcome to the Series - Podio Deep Dive
  2. Topic:  "Manipulation of Podio Tags"
  3. 1st Discussion: Business Case - What types of Solutions would require this type of API buildout?
  4. 2nd Discussion: What is in the API to allow this? What are the necessities and methods to make this happen?
  5. Deep Dive: How can developers leverage the Podio API in this Use Case?
  6. Up Next Episode: Scaling Podio Solutions 1
  7. Audience Engagement: Solving Podio Gaps – Listener Forum
  8. Outro: SUBSCRIBE and Thank you.

LINKS:

http://www.brickbridgeconsulting.com

Support the show (https://www.buymeacoffee.com/brickbridge)

Gil Roberts:

Welcome to the Podio Solutions Podcast season one episode eight. I'm Gil Roberts with me today is our lead developer, Alex Shull.

Alex Shull:

Hello,

Gil Roberts:

and our principal consultant, Jarett Duker.

Jarett Duker:

Afternoon.

Gil Roberts:

This podcast is about the design and development on the Citrix podio platform that can be founded, at podio, p o d i o.com or we use this podcast to discuss her own experiences with podio as well as the other interesting topics, in things from the podio developer community. If you are a podio designer, developer working at an agency, small business or enterprise, you should immediately hit that subscribe button if you have already. Thank you so much for this support. Lastly, before we dive into today's topic, if you have a topic, issue , solution, problem, or anything else you'd like to discuss, we want to know about it, hit us up on Facebook, linkedin, Twitter , um, uh, you can also message us or email us at podcast@brickbridgeconsulting.com B R I C K B R I D G E consulting.com. We're also going to be launching our listener forms here shortly be able to submit some things from that as well. Today's topic is a podio deep dive. We're going to be talking about the manipulation of the Podio tags from the API side. This again is another one of our mini series that'd be running during our podcast. We're going to talk , uh , heavily on a technical side for those developers out there listening to us and stimulate some conversation around solutions. Um, what we're going to be touching on today, as I said, as a manipulation of podio tags and just the general novel use of the Podio Api via this mini series. So what I'm going to do today is I'm gonna let the brain trust here , uh , get us started into the topic. And , uh , Jared, we're going to start with our first discussion about a business case.

Jarett Duker:

All right , well this is kind of fun for me because this is me sitting here asking Alex for help. Um, I was at a consulting engagement yesterday , uh , sitting down with the c level team of a company I've been working for for a couple of months now. And they've got a podio solution. They love it, but they're looking to really push the boundaries of what they can do. And as they were outlining their needs. To me, it seemed that the tagging function inside of podio would just really solve most of their needs. But there's a couple issues here. How I want to go into that. For our listeners, podio tags is an option that you can select, when you're editing a form , it's on, it's a selectable choice for just about anything. And the tags create a sort of flexible and dynamic category field. You can type anything into a tag and it becomes a category option. And the reason this is so fun is that now the filter tool that exists in all the databases can be filtered by those tags, which by extension that you could create a few based on these tags. If you can create a view by the tags, you could create a dashboard report, which is exactly what they wanted. They have a sales pipeline , uh , and they want to highlight certain items as being particularly hot, but they want to do it automatically based on criteria inside of the item, a certain level of deal value, a certain time since being touched and an expected time to close. But they want to bring you these four . Now tags work great, they're wonderful, but they've got one major shortcoming and this is almost like a podio gap except it's not really podio. Globiflow, which is, you know, definitely the largest automation engine running for Podio does not really have any functionality built into it based around uh , item tax. You can sort and filter by tags but, but I , there's no event hooks.

Alex Shull:

You mean sort, filter or by tags in globiflow?

Jarett Duker:

No I can sort and filter in Podio, by tags, but I can't manipulate tags. I can't add or subtract and I can't use tags as a web hook event to trigger off any other automation. And without that, the limit, the, the usefulness of podio tags is really very restricted. And I've talked to more and more people and it's a very underused element of the podio tool set within the podio capability.

Alex Shull:

We need some tech support and globifow. But you know , I , I agree with you because that's there , there are a lot of features that are in the Podio Api and you see traces of them in the user interface. Um, but I always think of podio is a system of services and the user interface is just the human way of interacting with podio and they , the API itself has features for um , this and some other things that are under utilized to say the least. And um , and , and somewhat under documented as well. I have to admit , um , I'd like to get into some of those in the future discussion. But as far as tags are concerned, they're really, really well designed feature. It's tags as something that is also in, for instance, Amazon web services makes extensive use of a tagging service. And one of the ideas behind tags is that the like other features in Podio, it's built really independently of the core items or apps or other things that can be tagged. And it uses a reference ID model to let you say that this is an APP, the app with this Id and then you can tag that out and lets you tag a variety of different objects in the podio world. Um, I, you know, I think that that is a feature that we could add to Sassaafras pretty readily. The APIs there , it's in the , uh , the Sdk we use. Um,

Jarett Duker:

So let me ask this to kind of frame things. When you add or delete a tag from an item, is that considered an event inside of podio that we can manipulate you?

Alex Shull:

You can, you can put that into a web hook and you can listen for those events. And that's the key point of where it Sassafras relies upon is that web hook model. There are other ways to drive things from inside of Podio, but that's the easiest and most responsive way. And yes. So you can see what tags are added.

Jarett Duker:

So there's really nothing stopping us from building automations around the tags, the tag system and podium.

Alex Shull:

Nothing at all. We do need to take advantage of it cause I see what you're talking about. There are several other scenarios where I think we could really benefit from having that as a feature. Um, it's, I can't think that it's an integrated anywhere else or that I've seen

Jarett Duker:

and unfortunately it's not an , it's really shut down some of the novel development ideas I've had for various companies over the years .

Alex Shull:

Let me ask you as a, as a, as a usage feature before we , um, you know, get too far into what it enables inside of platform like Sassafras and ask you when you use tags in views, can you use those views in a referenced way to drive the kind of of um, downstream functions that you need? Because if you can reference a view rather than an app directly, you'll get that filter version, won't you?

Jarett Duker:

Absolutely. And the truth is, I've never tried it. I can't imagine there being a problem with it because of views of view . What goes into that? It's determined . By, the filter settings that were saved.

Alex Shull:

I think, I think the fact that you can put a reference on to a view in Podio, it seems like a very minor difference, but it's actually very powerful feature and if you use it correctly, especially given that you can build it on tags that lets you have a kind of orthogonal concern , the tagging manipulation that's a geometric term really, that really what it means is that um, you are adding something that goes in another dimension. So you have a bunch of layers on your cake in an application design and you have your bottom layer, which may be the database and you have all these other layers on top and including the application model and you want to be able to make changes to things, but you want to , you don't want to disrupt the nice layers that you've built. So you add things that are orthogonal is, is , is the , the general idea. And this tagging service for instance, can go in and deal with tags and never do anything with items themselves directly. It's just a reference to the tag . So it kind of lives independently. And I consider that to be orthogonal in a certain sense. Um, I'm probably using the term loosely in all honesty, but the , the , the point is that , um , you are able to incorporate this feature without changing the core design of the application that is still working the way you originally designed. You can then have features that are customizations and you can have features that are , um, turn into brand new feature sets that do not require you to disrupt that core design.

Gil Roberts:

So this, this goes back to our core and customized model, right? Like this is a great way to add a customization to a core software without disrupting what is going on

Alex Shull:

In general. Yeah. And I think in general, it's a way of, of thinking about , um, how you can , um, have interfaces in, in , uh , integrated systems where you want to keep interfaces consistent. But have changes behind the scenes and these are all kind of approaches that let you contain , um, changes behind an interface. Podio has a lot of those capabilities that are just built in that you take for granted that makes it easy to use. But that design, the way they've designed it makes it able to do that.

Jarett Duker:

It seems this is a very, this extension pretty much writes itself because we've already pioneered the model of podio updates, firing web hooks , causing changes through the Sassafras backend. Just another type of web hook.

Alex Shull:

That pipeline looks identical. And, and from the standpoint of how we leveraged podio items and the reference model, I could probably write that in a week. You know, it's , it's very easy to do with podio . It's, it's, I'm, I'm, that's, that's embarrassing for me to say, but this is not going to be a huge challenge technically from, from compared to what I've already done,

Jarett Duker:

But represents a huge potential gain for podio users because it opens up a tool set that most people just aren't even aware of. I almost never see tags being used effectively inside of podio.

Alex Shull:

That's a good point. That, you know, I think speaks to some of the findings that we've made in our practice at Brick Bridge. We, we've come up with different ways to structure podio applications through workspaces and things and we build these into the Sassaafras solution model. But these are patterns that are reasonable to us and we , we spoke, we still rebuild them from scratch every single time. And one of the things I like to think of a Sassaafras being able to do in the future is for us to really be able to put solution blocks into Sassaafras that deploy automatically a pattern like this for us, like tagging. Now I , I'm, I'm way ahead talking about what you know from, you don't even have the feature in Sassaafras to how I wanted it to be usable in the future, but without having to, you know , change the way it , podio deals with tags and the way that we get value out of tags, I think that we could actually even make it easier for us to have an approach for using tags the way that you're talking about in a reasonable way.

Jarett Duker:

Let me ask a follow on question then, because we've already established that we can build views based on tags and then use, views if I wanted to , um, organize my data set by taga and just search the index , uh , dynamically inside of from an API perspective, how , how demanding would that be? Is that an option or do we really want to stick to using the, the front end view capabilities that already exist?

Alex Shull:

Um , are you talking about using the Api to search items that have a certain tag ?

Jarett Duker:

Yeah, get my data set now create the data set of this tag.

Alex Shull:

I don't know, performance wise. Um, but one thing I'll say in general is that I don't think that people should be using podio for search. I'd probably get hit , with some puzzled and or angry responses back. Um, it may be you from, from the podio team, but um, I can speak to this in , in , in other circumstances more completely. But if you're doing search, especially if you're doing it a lot, you're probably doing something wrong. Um, and I think that applies to tags as well. I think the beauty of tags that you can listen for events and then you can build a views. And so in general, I would not like a design that relies upon you having to search for something, having a given tag.

Jarett Duker:

Okay, great .

Gil Roberts:

Interesting. So, let's kind of move into the next point in discussion , uh , past what , what is in the API that allows us specifically for our developer listeners and maybe want to take advantage of what we're talking about today in their own solutions? Is there any in a signpost where at in the documentation or, or where are

Alex Shull:

You going to the API reference for podio and you will find a lot of the, all the details you need to understand tags in there, the reference documentation. Um , they could, they don't have a lot of examples there, but , um, it's pretty, it's consistent and um, it's um, supported in the SDK is that I've seen as well, but this is going to be custom development today as far as I can tell 'em until and/or when it's in Globiflow or Sassaafras.

Gil Roberts:

Yeah. So you're going to have to access , um, either developer, like somebody that's listening or somebody that's doing development in an enterprise or agency like ourselves to be able to get to , to be able to open up or leverage this, this particular feature set of Podio.

Alex Shull:

Let me stop there. You know what? I bet you can do this with procfu. Um,

Gil Roberts:

possibly I think

Alex Shull:

I bet you can do,

Jarett Duker:

I was just thinking about the post functions.

Gil Roberts:

But then that still I'll jump into procfu while we're....

Alex Shull:

I don't think, I don't know if you can listen to the events on procfu, but a lot of this you can do with procfu. I'm very competent .

Jarett Duker:

Well, listening to events is going to be to be critical for creating completely the automation.

Alex Shull:

Yeah. But I guess point is that you don't need to build an entire backend before processing the events. If all you need to do is to hook these events, then

Jarett Duker:

I don't think most people would probably build uh, complete backend for this. But I think the point is that if you're already running on a back end that is utilizing the API in fact based manner, this is something that you can do that will create a lot of power very quickly.

Gil Roberts:

I'm on procfu's website. I'm very, very quick cursory search while we're recording a podcast, I controlled f for tags. I'm not finding anything outrages there. yeah, absolutely. You know, chime in and hit us on the , uh , the forms or status or something. But I'm just real cursory research could not find it , um , on that. Now that doesn't mean that it , maybe it's buried in some of these other functions, but just the word tag is just not coming up under the, under the script. So I, and I'm sure probably, you know , post gated kind of responses or something like that, I'm sure that can be manipulated under globiflow or, or maybe a procfu function. I'm not finding , um, I think that that might be a possibility, but, but going back to even even with those, you're still looking at an extra layer development than somebody like me that has no technical development skills. I'm not going to be able to uncover this very easily. Not, not without the help of somebody.

Jarett Duker:

I really can't overstate the , the elbow room that opens up once you have this tool. I mean, I was in a conference room yesterday and it came up, but it's definitely not the first time. It's been multiple times where I had designed a novel solution and then just hit a wall because I realized I couldn't have listened to event created on tags to um, drive some other necessary automation.

Alex Shull:

Yeah. You know, I , I think I just realized why this might not be something that is in globiflow. How much time do we have on this? We're , we're just a little over 17 minutes. Okay. I , I think it , if I put myself in understood shoes and I look at what, how globiflow flow works, but in the Ui that it presents and I think about the tag Api and the events, what I realize is that the structure of the tag event makes a reference to um, an object with a reference id. And so it's a little bit different than the context of application events where you know the item types in the references because you can get any type of item that the tag has been added to and so it makes it a little bit harder from this , the context that the user has in that globiflow environment just to say, well this could be any item . What do you want to do ? The flow though from my perspective would be this could be any item. Then there's a switch statement to say, if I determined the item came from this app, then what do you want me to do with it? And that's the flow where globiflow could then incorporate this feature. You can have a tag based event where you then give the user the opportunity to say, well if it came from this, you know, an item for this, something like that .

Gil Roberts:

And it's not that it wasn't uh, able to work out it possibly just because of the low usage of tags from what we've seen.

Alex Shull:

Well the point I'm making is that it is a different user experience of the, of the globiflow Ui. I think tags demands a little there.

Jarett Duker:

And I don't know if we can actually say that it's a low usage of tags. We have a chicken and egg argument. Yeah. Tags are obviously a great idea that were implemented but not fully polished.

Alex Shull:

Tags are super useful. Yeah. I think, I think it's a , the, you know, if you build it they..

Jarett Duker:

Exactly and because they weren't fully, yes , polished people tended not to use them and then because people tended not to use them, they never received the secondary polish pass that they would have received...

Gil Roberts:

They used to be that every item had tags in it. When you created back in 2012 2013 when I first started using podio, like tags were automatically at the bottom of everything. And in some of the user videos way back when, when I first started using it to try to understand it, a lot of that was around like art assets, like upload a picture for the CMS system to go into a website and you can tag what that picture is, you know like coffee house, Blah Blah Blah type stuff. So it was almost like you were putting in metadata about a , about a field that was already in there rather than kind of what we're talking about tags are.

Jarett Duker:

Be metadata , but that's not where their power lies. The power lies in dynamically driving function.

Gil Roberts:

Yeah. So I think that like it's an initial use is just the kind of talk about what's inside of an item rather than actually drive actions as you're saying Jared. So, and then I saw maybe 2014 or 15, you could actually specify to take tags out of an item is when they started being able to check the box if you wanted tags to be available on an item or not. So for awhile it was on everything and then it was taken away. And I don't know maybe that cause we send the reason it hasn't had attached and attraction because now they're not default add anymore .

Alex Shull:

Well I think that early on if you recall, we're a visual element and blogs and tag clouds . And that's why they did though , because tag clouds were really, really competitive teacher. But tags are a , um, an aspect that are, you know, very good for automation, you know, because they, you can have a reliable element there that is detectable that you can have encoded things and all. And the idea is that you can , um, you know, attach any number of them as well. So there's no kind of like, you know, reference violation constraints and things like that. You can put a tag there, you can remove it. So I think that the origins of tags kind of do reflect what you, you're talking about podio. But in reality a, it's , it's a chicken and egg thing and I think if we can make use of them and uh , start, you know , uh , making it easier to make use of them, then what we'll go to tell them . We might have to, you know, test out the scalability.

Jarett Duker:

I have to read all the three open projects right now that could make immediate use of tags if I had that, I'll work on it.

Gil Roberts:

Okay. So keep our conversation moving along. Um, what are some of the necessities are methods for a developer that's listening to be able to do something like what we're talking with tags, maybe they don't want to , they want to do this on their own. They have their own flow engine is maybe what Jared referenced earlier. Maybe they already have something built . Maybe they're built in the act process of building something. You know, there are more technical in nature so they can access and work with the API where , what are some of the necessities or method .

Alex Shull:

There's a very small tool set that if you want to get working on your own and solution, that in all honesty there's within Amazon web services, if you learned a little bit about the API gateway, if you learn a little bit about um, Lambda and AWS, those two things alone, you can get a very, very far away. You can go a long way because you can put, you know, you can put secure in access keys into environment settings in lambda, and you can receive events coming through the API gateway that are secure and you can build know web hooks on a , a symbol function that you only pay for when it runs. Now. It's not scalable and manageable and things like that we're trying to achieve with Sassafras.

Jarett Duker:

But for someone who just working on a one off build and wants to build this usability into their current project they could do this in a very economical way.

Alex Shull:

Yes. Yeah. In fact, you can stay within the free tier that would have doing what I'm talking about and you know, he won't even, you know,

Gil Roberts:

Depending on the utilization you have to pay some day, you know ?

Alex Shull:

But yeah, this is very manageable. It's very approachable. And I like the idea of actually putting a template out there just to , you know, given a people in a , a view and to the , the , the small path to doing a little , um , listening in on podio. Um , and then responding to it because it's not a , it's not complicated. It's something that someone could deploy , um, in less than an hour. What kind of languages are the same tool set use? Well, languages are actually , um, I mean like when you're talking about ace GDP in any language, but we're talking about SDKs and that means that who has developed a nice, you know, library for doing the restful API calls for you. And you know , it's very strong PHB support. There's very good support and in Ruby and javascript dot. Net Java. So there is those major life . Yeah . Yeah. I think , um , I'm not naming them all, but you can go onto the website, you know, the , podio guy has them .

Jarett Duker:

Let me ask that then. For someone who is been doing podio development for a while to maybe never linkedin a backend AWS solution is there are some reference material that we can point them to as a good starting point.

Alex Shull:

Well, but on the podio website, I think they give you , um , the basic ideas of how to connect to their API, but they don't put it into the context of a specific solution. They link out to the SDKs that kind of having examples and um ,which there are, you know, are of varying quality, but there's enough out there to get started. I think it would be nice to give people a template that is deployable to , um, Amazon lambda , um , or actually a full template that with an API gateway to it. It'd be interesting just to put it out there and see if people are able to make use of it.

Gil Roberts:

Excellent. I assume we'll have that on our website as well for people to come and take, take a look at and we'll talk about that a little bit later. Okay. So appreciate everyone listening today. Hopefully that was some great information for you all. Um, we'll have some more of this series and we'll be touching on some other ones. What's our next deep dive one we want to talk about you.

Jarett Duker:

The next one I've got for Alex is a segmenting and manipulating user permissions for a scalable solution.

Gil Roberts:

And that'll be the next time on this mini series that we'll have here. For our next episode though we're going to be talking directly about scaling podio solutions. Uh , I will talk about what scaling looks like specifically and then also touch on what a distribution and some marketing and some other topics , uh , required around products built on a podio platform and scaling those. Thank you guys once again for listening. If you have not already, please, please, please subscribe. Uh , we're also needing some reviews on apple, iTunes and Google play. If you could swing by and drop some stars on us, a five star rating is really, really helpful. Um, even, even if you don't leave a review, but , uh , both would be the best and that would really help support this show. Um, and, and keep us recording. If you guys have any other questions about Brick Bridge or a services, check us out at brickedbridgeconsulting.com B R I C K B R I D G E consulting.com. Uh , lastly, we are still looking for more podio gaps , uh , were scouring the user forms and the community forms. But if you have a gap or something inside of Podio that you need help solving, we'd like to hear about it, do hit us up on our Facebook, linkedin, Twitter, or send us a message at podio. Uh , excuse me, podcast@brickbridgeconsulting.com. Can also send a podio message and otherwise than that will talk to you guys next week. Thanks.

Jarett Duker:

Wonderful. Thank you.