[{"data":1,"prerenderedAt":430},["ShallowReactive",2],{"footer-primary":3,"footer-secondary":93,"footer-description":119,"directus-academy-directus-automate":121,"directus-academy-directus-automate-next":164,"sales-reps":178},{"items":4},[5,29,49,69],{"id":6,"title":7,"url":8,"page":8,"children":9},"522e608a-77b0-4333-820d-d4f44be2ade1","Solutions",null,[10,15,20,25],{"id":11,"title":12,"url":8,"page":13},"fcafe85a-a798-4710-9e7a-776fe413aae5","Headless CMS",{"permalink":14},"/solutions/headless-cms",{"id":16,"title":17,"url":8,"page":18},"79972923-93cf-4777-9e32-5c9b0315fc10","Backend-as-a-Service",{"permalink":19},"/solutions/backend-as-a-service",{"id":21,"title":22,"url":8,"page":23},"0fa8d0c1-7b64-4f6f-939d-d7fdb99fc407","Product Information",{"permalink":24},"/solutions/product-information-management",{"id":26,"title":27,"url":28,"page":8},"63946d54-6052-4780-8ff4-91f5a9931dcc","100+ Things to Build","https://directus.io/blog/100-tools-apps-and-platforms-you-can-build-with-directus",{"id":30,"title":31,"url":8,"page":8,"children":32},"8ab4f9b1-f3e2-44d6-919b-011d91fe072f","Resources",[33,37,41,45],{"id":34,"title":35,"url":36,"page":8},"f951fb84-8777-4b84-9e91-996fe9d25483","Documentation","https://docs.directus.io",{"id":38,"title":39,"url":40,"page":8},"366febc7-a538-4c08-a326-e6204957f1e3","Guides","https://docs.directus.io/guides/",{"id":42,"title":43,"url":44,"page":8},"aeb9128e-1c5f-417f-863c-2449416433cd","Community","https://directus.chat",{"id":46,"title":47,"url":48,"page":8},"da1c2ed8-0a77-49b0-a903-49c56cb07de5","Release Notes","https://github.com/directus/directus/releases",{"id":50,"title":51,"url":8,"page":8,"children":52},"d61fae8c-7502-494a-822f-19ecff3d0256","Support",[53,57,61,65],{"id":54,"title":55,"url":56,"page":8},"8c43c781-7ebd-475f-a931-747e293c0a88","Issue Tracker","https://github.com/directus/directus/issues",{"id":58,"title":59,"url":60,"page":8},"d77bb78e-cf7b-4e01-932a-514414ba49d3","Feature Requests","https://github.com/directus/directus/discussions?discussions_q=is:open+sort:top",{"id":62,"title":63,"url":64,"page":8},"4346be2b-2c53-476e-b53b-becacec626a6","Community Chat","https://discord.com/channels/725371605378924594/741317677397704757",{"id":66,"title":67,"url":68,"page":8},"26c115d2-49f7-4edc-935e-d37d427fb89d","Cloud Dashboard","https://directus.cloud",{"id":70,"title":71,"url":8,"page":8,"children":72},"49141403-4f20-44ac-8453-25ace1265812","Organization",[73,78,84,88],{"id":74,"title":75,"url":76,"page":77},"1f36ea92-8a5e-47c8-914c-9822a8b9538a","About","/about",{"permalink":76},{"id":79,"title":80,"url":81,"page":82},"b84bf525-5471-4b14-a93c-225f6c386005","Careers","#",{"permalink":83},"/careers",{"id":85,"title":86,"url":87,"page":8},"86aabc3a-433d-434b-9efa-ad1d34be0a34","Brand Assets","https://drive.google.com/drive/folders/1lBOTba4RaA5ikqOn8Ewo4RYzD0XcymG9?usp=sharing",{"id":89,"title":90,"url":8,"page":91},"8d2fa1e3-198e-4405-81e1-2ceb858bc237","Contact",{"permalink":92},"/contact",{"items":94},[95,101,107,113],{"id":96,"title":97,"url":8,"page":98,"children":100},"8a1b7bfa-429d-4ffc-a650-2a5fdcf356da","Cloud Policies",{"permalink":99},"/cloud-policies",[],{"id":102,"title":103,"url":81,"page":104,"children":106},"bea848ef-828f-4306-8017-6b00ec5d4a0c","License",{"permalink":105},"/bsl",[],{"id":108,"title":109,"url":81,"page":110,"children":112},"4e914f47-4bee-42b7-b445-3119ee4196ef","Terms",{"permalink":111},"/terms",[],{"id":114,"title":115,"url":81,"page":116,"children":118},"ea69eda6-d317-4981-8421-fcabb1826bfd","Privacy",{"permalink":117},"/privacy",[],{"description":120},"\u003Cp>A composable backend to build your Headless CMS, BaaS, and more.&nbsp;\u003C/p>",{"id":122,"slug":123,"vimeo_id":124,"description":125,"tile":126,"length":127,"resources":8,"people":8,"episode_number":127,"published":128,"title":129,"video_transcript_html":130,"video_transcript_text":131,"content":8,"status":132,"episode_people":133,"recommendations":145,"season":146,"seo":163},"6e6965e7-13cc-4f86-b512-f567d66cfbe9","directus-automate","1007702460","Understand Directus Flows, We'll explain how it enables custom event-driven task automation within Directus through triggers, operations, and data chains⁠.","35aa07c6-947b-4859-9e04-f44870140ffa",5,"2024-09-13","Directus Automate","\u003Cp>Speaker 0: Directus Automate provides flows, which enable custom event driven task automation within Directus. Each flow is composed of 1 trigger followed by a series of operations and finally returning data. Each flow starts with 1 trigger. The first is event driven based on data changes in your project. You can create a filter trigger which intercepts a database transaction before it happens, allowing you to validate or manipulate the data and optionally rejecting the transaction.\u003C/p>\u003Cp>Or action filters trigger once the change has happened in your database. This includes create, update, and deleting of items. This is great for data enrichment or follow-up logic that doesn't need to delay the database transaction from happening. The schedule trigger will run regularly on a specified interval. It uses the 6 point cron job syntax, so you can get as granular as second or as wide as weeks.\u003C/p>\u003Cp>The webhook trigger creates a unique URL for your flow and will be run whenever that URL is requested. Any data sent with the request will be available in the trigger object. The manual flow trigger adds a button to configured collections in Directus Explore and Directus Editor that can be clicked by users in the data studio. Optionally, a confirmation prompt can be shown with a form to collect data. And finally, you can chain flows together and configure them to be triggered by a parent flow.\u003C/p>\u003Cp>Data can be passed into them from the parent and once the flow has concluded it can be returned back up. Each time a flow is run it has its own data chain which is a JSON object passed from the trigger and to each operation, which will append information to the data chain. Now there are some dynamic properties available in every data chain. Trigger contains all of the data generated by the flows trigger. Accountability contains data about who or what started the flow.\u003C/p>\u003Cp>Env contains all of the environment variables that have been allowed to be shown and used inside of flows. And last contains return data from the previous operation whenever used. That means in every operation, the value of last will change to always be the output of the previous step. Each step which we call operations will receive all data in the data chain, perform some logic and return data back into the data chain. Each operation has a success and failure path which we call resolve and reject.\u003C/p>\u003Cp>So be sure to account for failed operations, especially when they rely on specific permissions or external services. A couple of very common operations include the webhook request url operation that allows your flow to make an external web request. You can select a method, url, and set custom headers as well as providing a payload. The create, read, update and delete data operations perform actions on items from a collection and adds the result to the data chain. You may select items by their ID or by running a query using directives' filter syntax.\u003C/p>\u003Cp>The run script operation lets you add custom JavaScript snippets. The script will be executed securely in an isolated sandbox, which means it only has access to standard built in objects and has no access outside of the sandbox except for sharing input and output values. This means, for example, no access to the file system, no ability to do network requests, and no support for third party packages. You can do each of these by using other operations that are provided as part of directors or by building custom operation extensions that use packages. Accessible from the sidebar, logs store information for each flow execution.\u003C/p>\u003Cp>Each log will display information from triggers as well as each operation in the flow. Keep in mind that if you've configured a flow to track logs, all of this will be stored in your database. So you may periodically need to delete this data if your flows get a lot of use. Directus automate is super powerful and I hope this explains the basics of how to utilize them. You can download custom operations from the directors marketplace and follow the tutorials in our documentation to set up specific flows.\u003C/p>","Directus Automate provides flows, which enable custom event driven task automation within Directus. Each flow is composed of 1 trigger followed by a series of operations and finally returning data. Each flow starts with 1 trigger. The first is event driven based on data changes in your project. You can create a filter trigger which intercepts a database transaction before it happens, allowing you to validate or manipulate the data and optionally rejecting the transaction. Or action filters trigger once the change has happened in your database. This includes create, update, and deleting of items. This is great for data enrichment or follow-up logic that doesn't need to delay the database transaction from happening. The schedule trigger will run regularly on a specified interval. It uses the 6 point cron job syntax, so you can get as granular as second or as wide as weeks. The webhook trigger creates a unique URL for your flow and will be run whenever that URL is requested. Any data sent with the request will be available in the trigger object. The manual flow trigger adds a button to configured collections in Directus Explore and Directus Editor that can be clicked by users in the data studio. Optionally, a confirmation prompt can be shown with a form to collect data. And finally, you can chain flows together and configure them to be triggered by a parent flow. Data can be passed into them from the parent and once the flow has concluded it can be returned back up. Each time a flow is run it has its own data chain which is a JSON object passed from the trigger and to each operation, which will append information to the data chain. Now there are some dynamic properties available in every data chain. Trigger contains all of the data generated by the flows trigger. Accountability contains data about who or what started the flow. Env contains all of the environment variables that have been allowed to be shown and used inside of flows. And last contains return data from the previous operation whenever used. That means in every operation, the value of last will change to always be the output of the previous step. Each step which we call operations will receive all data in the data chain, perform some logic and return data back into the data chain. Each operation has a success and failure path which we call resolve and reject. So be sure to account for failed operations, especially when they rely on specific permissions or external services. A couple of very common operations include the webhook request url operation that allows your flow to make an external web request. You can select a method, url, and set custom headers as well as providing a payload. The create, read, update and delete data operations perform actions on items from a collection and adds the result to the data chain. You may select items by their ID or by running a query using directives' filter syntax. The run script operation lets you add custom JavaScript snippets. The script will be executed securely in an isolated sandbox, which means it only has access to standard built in objects and has no access outside of the sandbox except for sharing input and output values. This means, for example, no access to the file system, no ability to do network requests, and no support for third party packages. You can do each of these by using other operations that are provided as part of directors or by building custom operation extensions that use packages. Accessible from the sidebar, logs store information for each flow execution. Each log will display information from triggers as well as each operation in the flow. Keep in mind that if you've configured a flow to track logs, all of this will be stored in your database. So you may periodically need to delete this data if your flows get a lot of use. Directus automate is super powerful and I hope this explains the basics of how to utilize them. You can download custom operations from the directors marketplace and follow the tutorials in our documentation to set up specific flows.","published",[134],{"people_id":135},{"id":136,"first_name":137,"last_name":138,"avatar":139,"bio":140,"links":141},"82b3f7e5-637b-4890-93b2-378b497d5dc6","Kevin","Lewis","a662f91b-1ee9-4277-8c9d-3ac1878e44ad","Director of Developer Experience at Directus",[142],{"url":143,"service":144},"https://directus.io/team/kevin-lewis","website",[],{"id":147,"number":148,"year":149,"episodes":150,"show":160},"7915da85-0e6a-40d5-a43b-fe0514ec2b6c",1,"2024",[151,152,153,154,155,122,156,157,158,159],"96b44cbc-1b14-4bea-87cd-0c4cb34d261d","637aafa2-b323-4ad0-adf0-ba52328bb798","04ffd615-6d1d-45de-9c1b-2ff9206fe343","4cc18530-ba2a-44f3-bb2e-2bfe4ad024d5","43612e4c-1bd9-411e-bd73-9c835a9b51e0","20666ca0-00e3-4d71-985b-f7c4abbe3bd1","8ad4795b-963c-4ebd-8921-38ea2dda9f44","4d3c062f-0f30-41b7-83e9-3d2ed34a86f4","c7ab64da-f34d-42c9-8a1a-03e6026cc7e5",{"title":161,"tile":162},"Directus Academy","bd5e0d7c-fd4f-4225-af71-dedb154be371",{"title":8,"meta_description":8},{"id":156,"slug":165,"season":147,"vimeo_id":166,"description":167,"tile":168,"length":169,"resources":8,"people":8,"episode_number":170,"published":128,"title":171,"video_transcript_html":172,"video_transcript_text":173,"content":8,"seo":174,"status":132,"episode_people":175,"recommendations":177},"directus-insights","1009260574","Explore the powerful features of Directus Insights for building interactive dashboards with customizable panels, charts, and global variables to visualize and analyze your data.","f6fdb697-d613-48c0-b02d-18ec93f498ce",3,6,"Directus Insights","\u003Cp>Speaker 0: Directus insights allows rapid no code dashboard building to display and act on data. Regardless of your use case, you will be able to set up key metrics from data held in your director's project in just a few clicks. Dashboards can be used for business intelligence, user progress tracking, web traffic conversions, or any other time you need to analyze data within your director's project. Each dash board is made up of panels, building blocks to display and interact with data. They include charts and graphs like bar charts, line charts, meters, pie charts and data lists.\u003C/p>\n\u003Cp>The list panel allows filtering and listing of items from a specified collection. If inline editing is enabled, clicking an item will open a directors editor drawer allowing users to examine each item and edit data directly from the dashboard. Now there are 2 specific built in panels which are very interesting. The global variable and the global relational variable panels. The global variable panel allows you to create a variable which is globally accessible across other panels.\u003C/p>\n\u003Cp>When creating a variable, a key is provided. The value can then be accessed in any other panel by using the mustache syntax with the name of the key in the middle. The global relational variable panel allows for variables to be set by selecting 1 or more items from a collection. A drop down select interface is shown which will open a director's explore draw. The returned value will be a single item ID or an array of IDs if select multiple items is enabled.\u003C/p>\n\u003Cp>You can use this, for example, to create a dynamic filter. Directus insights comes with some baked in panels, but you can always get more straight from the directus marketplace or build your own as an extension and install it in your project. I hope this provides an interesting insight into how director's insights works. If you have any questions, feel free to reach out and we'll see you in the next video.\u003C/p>","Directus insights allows rapid no code dashboard building to display and act on data. Regardless of your use case, you will be able to set up key metrics from data held in your director's project in just a few clicks. Dashboards can be used for business intelligence, user progress tracking, web traffic conversions, or any other time you need to analyze data within your director's project. Each dash board is made up of panels, building blocks to display and interact with data. They include charts and graphs like bar charts, line charts, meters, pie charts and data lists. The list panel allows filtering and listing of items from a specified collection. If inline editing is enabled, clicking an item will open a directors editor drawer allowing users to examine each item and edit data directly from the dashboard. Now there are 2 specific built in panels which are very interesting. The global variable and the global relational variable panels. The global variable panel allows you to create a variable which is globally accessible across other panels. When creating a variable, a key is provided. The value can then be accessed in any other panel by using the mustache syntax with the name of the key in the middle. The global relational variable panel allows for variables to be set by selecting 1 or more items from a collection. A drop down select interface is shown which will open a director's explore draw. The returned value will be a single item ID or an array of IDs if select multiple items is enabled. You can use this, for example, to create a dynamic filter. Directus insights comes with some baked in panels, but you can always get more straight from the directus marketplace or build your own as an extension and install it in your project. I hope this provides an interesting insight into how director's insights works. If you have any questions, feel free to reach out and we'll see you in the next video.","c1c793eb-6117-45c5-b4ec-51462a062177",[176],"e73b7e97-b6e9-4750-b6bc-919a744e1fe8",[],{"reps":179},[180,236],{"name":181,"sdr":8,"link":182,"countries":183,"states":185},"John Daniels","https://meet.directus.io/meetings/john2144/john-contact-form-meeting",[184],"United States",[186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235],"Michigan","Indiana","Ohio","West Virginia","Kentucky","Virginia","Tennessee","North Carolina","South Carolina","Georgia","Florida","Alabama","Mississippi","New York","MI","IN","OH","WV","KY","VA","TN","NC","SC","GA","FL","AL","MS","NY","Connecticut","CT","Delaware","DE","Maine","ME","Maryland","MD","Massachusetts","MA","New Hampshire","NH","New Jersey","NJ","Pennsylvania","PA","Rhode Island","RI","Vermont","VT","Washington DC","DC",{"name":237,"link":238,"countries":239},"Michelle Riber","https://meetings.hubspot.com/mriber",[240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,217,428,429],"Albania","ALB","Algeria","DZA","Andorra","AND","Angola","AGO","Austria","AUT","Belgium","BEL","Benin","BEN","Bosnia and Herzegovina","BIH","Botswana","BWA","Bulgaria","BGR","Burkina Faso","BFA","Burundi","BDI","Cameroon","CMR","Cape Verde","CPV","Central African Republic","CAF","Chad","TCD","Comoros","COM","Côte d'Ivoire","CIV","Croatia","HRV","Czech Republic","CZE","Democratic Republic of Congo","COD","Denmark","DNK","Djibouti","DJI","Egypt","EGY","Equatorial Guinea","GNQ","Eritrea","ERI","Estonia","EST","Eswatini","SWZ","Ethiopia","ETH","Finland","FIN","France","FRA","Gabon","GAB","Gambia","GMB","Ghana","GHA","Greece","GRC","Guinea","GIN","Guinea-Bissau","GNB","Hungary","HUN","Iceland","ISL","Ireland","IRL","Italy","ITA","Kenya","KEN","Latvia","LVA","Lesotho","LSO","Liberia","LBR","Libya","LBY","Liechtenstein","LIE","Lithuania","LTU","Luxembourg","LUX","Madagascar","MDG","Malawi","MWI","Mali","MLI","Malta","MLT","Mauritania","MRT","Mauritius","MUS","Moldova","MDA","Monaco","MCO","Montenegro","MNE","Morocco","MAR","Mozambique","MOZ","Namibia","NAM","Niger","NER","Nigeria","NGA","North Macedonia","MKD","Norway","NOR","Poland","POL","Portugal","PRT","Republic of Congo","COG","Romania","ROU","Rwanda","RWA","San Marino","SMR","São Tomé and Príncipe","STP","Senegal","SEN","Serbia","SRB","Seychelles","SYC","Sierra Leone","SLE","Slovakia","SVK","Slovenia","SVN","Somalia","SOM","South Africa","ZAF","South Sudan","SSD","Spain","ESP","Sudan","SDN","Sweden","SWE","Tanzania","TZA","Togo","TGO","Tunisia","TUN","Uganda","UGA","United Kingdom","GBR","Vatican City","VAT","Zambia","ZMB","Zimbabwe","ZWE","UK","Germany","Netherlands","Switzerland","CH","NL",1773850441172]