[{"data":1,"prerenderedAt":4509},["ShallowReactive",2],{"navigation":3,"\u002Fai-agents\u002Frecipes":773,"\u002Fai-agents\u002Frecipes-surround":4504},[4,28,63,85,103,112,269,355,453,485,506,542,576,594,647,669,693,721,747],{"title":5,"path":6,"stem":7,"children":8,"icon":27},"Getting Started","\u002Fgetting-started","01.getting-started\u002F01.index",[9,11,15,19,23],{"title":10,"path":6,"stem":7},"Introduction",{"title":12,"path":13,"stem":14},"Installation","\u002Fgetting-started\u002Finstallation","01.getting-started\u002F02.installation",{"title":16,"path":17,"stem":18},"Quickstart with AI","\u002Fgetting-started\u002Fquickstart-with-ai","01.getting-started\u002F03.quickstart-with-ai",{"title":20,"path":21,"stem":22},"Quickstart by Hand","\u002Fgetting-started\u002Fquickstart-by-hand","01.getting-started\u002F04.quickstart-by-hand",{"title":24,"path":25,"stem":26},"The Admin","\u002Fgetting-started\u002Fadmin-tour","01.getting-started\u002F05.admin-tour","i-lucide-rocket",{"title":29,"icon":30,"path":31,"stem":32,"children":33,"page":62},"Concepts","i-lucide-lightbulb","\u002Fconcepts","02.concepts",[34,38,42,46,50,54,58],{"title":35,"path":36,"stem":37},"PostgreSQL First","\u002Fconcepts\u002Fpostgresql-first","02.concepts\u002F01.postgresql-first",{"title":39,"path":40,"stem":41},"Resources","\u002Fconcepts\u002Fresources","02.concepts\u002F02.resources",{"title":43,"path":44,"stem":45},"Users and Roles","\u002Fconcepts\u002Fusers-and-roles","02.concepts\u002F03.users-and-roles",{"title":47,"path":48,"stem":49},"Permissions","\u002Fconcepts\u002Fpermissions","02.concepts\u002F04.permissions",{"title":51,"path":52,"stem":53},"Drafts and Publishing","\u002Fconcepts\u002Fdrafts-and-publishing","02.concepts\u002F05.drafts-and-publishing",{"title":55,"path":56,"stem":57},"Audit and Events","\u002Fconcepts\u002Faudit-and-events","02.concepts\u002F06.audit-and-events",{"title":59,"path":60,"stem":61},"Object Access","\u002Fconcepts\u002Fobject-access","02.concepts\u002F07.object-access",false,{"title":64,"icon":65,"path":66,"stem":67,"children":68,"page":62},"App","i-lucide-app-window","\u002Fapp","03.app",[69,73,77,81],{"title":70,"path":71,"stem":72},"The App","\u002Fapp\u002Foverview","03.app\u002F01.overview",{"title":74,"path":75,"stem":76},"DataViews","\u002Fapp\u002Fdataviews","03.app\u002F02.dataviews",{"title":78,"path":79,"stem":80},"Dashboards","\u002Fapp\u002Fdashboards","03.app\u002F03.dashboards",{"title":82,"path":83,"stem":84},"Arrange menu","\u002Fapp\u002Farrange-menu","03.app\u002F04.arrange-menu",{"title":86,"icon":87,"path":88,"stem":89,"children":90,"page":62},"Database","i-lucide-database","\u002Fdatabase","04.database",[91,95,99],{"title":92,"path":93,"stem":94},"Tables","\u002Fdatabase\u002Ftables","04.database\u002F01.tables",{"title":96,"path":97,"stem":98},"Views","\u002Fdatabase\u002Fviews","04.database\u002F02.views",{"title":100,"path":101,"stem":102},"Functions","\u002Fdatabase\u002Ffunctions","04.database\u002F03.functions",{"title":104,"icon":105,"path":106,"stem":107,"children":108,"page":62},"SQL Console","i-lucide-square-terminal","\u002Fsql-console","05.sql-console",[109],{"title":104,"path":110,"stem":111},"\u002Fsql-console\u002Foverview","05.sql-console\u002F01.overview",{"title":74,"icon":113,"path":114,"stem":115,"children":116,"page":62},"i-lucide-layout-list","\u002Fdataviews","06.dataviews",[117,121,125,129,183,214],{"title":118,"path":119,"stem":120},"Overview","\u002Fdataviews\u002Foverview","06.dataviews\u002F01.overview",{"title":122,"path":123,"stem":124},"Creating a DataView","\u002Fdataviews\u002Fcreating","06.dataviews\u002F02.creating",{"title":126,"path":127,"stem":128},"Publishing","\u002Fdataviews\u002Fpublishing","06.dataviews\u002F03.publishing",{"title":130,"icon":131,"path":132,"stem":133,"children":134,"page":62},"Types","i-lucide-shapes","\u002Fdataviews\u002Ftypes","06.dataviews\u002F04.types",[135,139,143,147,151,155,159,163,167,171,175,179],{"title":136,"path":137,"stem":138},"Table","\u002Fdataviews\u002Ftypes\u002Ftable","06.dataviews\u002F04.types\u002F01.table",{"title":140,"path":141,"stem":142},"Cards","\u002Fdataviews\u002Ftypes\u002Fcards","06.dataviews\u002F04.types\u002F02.cards",{"title":144,"path":145,"stem":146},"Kanban","\u002Fdataviews\u002Ftypes\u002Fkanban","06.dataviews\u002F04.types\u002F03.kanban",{"title":148,"path":149,"stem":150},"Calendar","\u002Fdataviews\u002Ftypes\u002Fcalendar","06.dataviews\u002F04.types\u002F04.calendar",{"title":152,"path":153,"stem":154},"Gantt","\u002Fdataviews\u002Ftypes\u002Fgantt","06.dataviews\u002F04.types\u002F05.gantt",{"title":156,"path":157,"stem":158},"Map","\u002Fdataviews\u002Ftypes\u002Fmap","06.dataviews\u002F04.types\u002F06.map",{"title":160,"path":161,"stem":162},"Tree","\u002Fdataviews\u002Ftypes\u002Ftree","06.dataviews\u002F04.types\u002F07.tree",{"title":164,"path":165,"stem":166},"Form","\u002Fdataviews\u002Ftypes\u002Fform","06.dataviews\u002F04.types\u002F08.form",{"title":168,"path":169,"stem":170},"Master-detail","\u002Fdataviews\u002Ftypes\u002Fmaster-detail","06.dataviews\u002F04.types\u002F09.master-detail",{"title":172,"path":173,"stem":174},"Settings","\u002Fdataviews\u002Ftypes\u002Fsettings","06.dataviews\u002F04.types\u002F10.settings",{"title":176,"path":177,"stem":178},"Custom","\u002Fdataviews\u002Ftypes\u002Fcustom","06.dataviews\u002F04.types\u002F11.custom",{"title":180,"path":181,"stem":182},"External Frame","\u002Fdataviews\u002Ftypes\u002Fexternal-frame","06.dataviews\u002F04.types\u002F12.external-frame",{"title":172,"icon":184,"path":185,"stem":186,"children":187,"page":62},"i-lucide-settings-2","\u002Fdataviews\u002Fsettings","06.dataviews\u002F05.settings",[188,192,196,199,202,206,210],{"title":189,"path":190,"stem":191},"General","\u002Fdataviews\u002Fsettings\u002Fgeneral","06.dataviews\u002F05.settings\u002F01.general",{"title":193,"path":194,"stem":195},"Data","\u002Fdataviews\u002Fsettings\u002Fdata","06.dataviews\u002F05.settings\u002F02.data",{"title":96,"path":197,"stem":198},"\u002Fdataviews\u002Fsettings\u002Fviews","06.dataviews\u002F05.settings\u002F03.views",{"title":164,"path":200,"stem":201},"\u002Fdataviews\u002Fsettings\u002Fform","06.dataviews\u002F05.settings\u002F04.form",{"title":203,"path":204,"stem":205},"Actions","\u002Fdataviews\u002Fsettings\u002Factions","06.dataviews\u002F05.settings\u002F05.actions",{"title":207,"path":208,"stem":209},"Security","\u002Fdataviews\u002Fsettings\u002Fsecurity","06.dataviews\u002F05.settings\u002F06.security",{"title":211,"path":212,"stem":213},"Versions","\u002Fdataviews\u002Fsettings\u002Fversions","06.dataviews\u002F05.settings\u002F07.versions",{"title":215,"icon":216,"path":217,"stem":218,"children":219,"page":62},"Design Form","i-lucide-pencil-ruler","\u002Fdataviews\u002Fdesign-form","06.dataviews\u002F06.design-form",[220,223,257,261,265],{"title":118,"path":221,"stem":222},"\u002Fdataviews\u002Fdesign-form\u002Foverview","06.dataviews\u002F06.design-form\u002F01.overview",{"title":224,"icon":131,"path":225,"stem":226,"children":227,"page":62},"Widgets","\u002Fdataviews\u002Fdesign-form\u002Fwidgets","06.dataviews\u002F06.design-form\u002F02.widgets",[228,231,234,238,242,246,250,254],{"title":224,"path":229,"stem":230},"\u002Fdataviews\u002Fdesign-form\u002Fwidgets\u002Foverview","06.dataviews\u002F06.design-form\u002F02.widgets\u002F01.overview",{"title":164,"path":232,"stem":233},"\u002Fdataviews\u002Fdesign-form\u002Fwidgets\u002Fform","06.dataviews\u002F06.design-form\u002F02.widgets\u002F02.form",{"title":235,"path":236,"stem":237},"Inputs","\u002Fdataviews\u002Fdesign-form\u002Fwidgets\u002Finputs","06.dataviews\u002F06.design-form\u002F02.widgets\u002F03.inputs",{"title":239,"path":240,"stem":241},"Display","\u002Fdataviews\u002Fdesign-form\u002Fwidgets\u002Fdisplay","06.dataviews\u002F06.design-form\u002F02.widgets\u002F04.display",{"title":243,"path":244,"stem":245},"Embeds","\u002Fdataviews\u002Fdesign-form\u002Fwidgets\u002Fembeds","06.dataviews\u002F06.design-form\u002F02.widgets\u002F05.embeds",{"title":247,"path":248,"stem":249},"Layout","\u002Fdataviews\u002Fdesign-form\u002Fwidgets\u002Flayout","06.dataviews\u002F06.design-form\u002F02.widgets\u002F06.layout",{"title":251,"path":252,"stem":253},"Overlays","\u002Fdataviews\u002Fdesign-form\u002Fwidgets\u002Foverlays","06.dataviews\u002F06.design-form\u002F02.widgets\u002F07.overlays",{"title":203,"path":255,"stem":256},"\u002Fdataviews\u002Fdesign-form\u002Fwidgets\u002Factions","06.dataviews\u002F06.design-form\u002F02.widgets\u002F08.actions",{"title":258,"path":259,"stem":260},"Variables","\u002Fdataviews\u002Fdesign-form\u002Fvariables","06.dataviews\u002F06.design-form\u002F03.variables",{"title":262,"path":263,"stem":264},"Code","\u002Fdataviews\u002Fdesign-form\u002Fcode","06.dataviews\u002F06.design-form\u002F04.code",{"title":266,"path":267,"stem":268},"Formulas","\u002Fdataviews\u002Fdesign-form\u002Fformulas","06.dataviews\u002F06.design-form\u002F05.formulas",{"title":78,"icon":270,"path":271,"stem":272,"children":273,"page":62},"i-lucide-layout-dashboard","\u002Fdashboards","07.dashboards",[274,277,281,285,332],{"title":118,"path":275,"stem":276},"\u002Fdashboards\u002Foverview","07.dashboards\u002F01.overview",{"title":278,"path":279,"stem":280},"Creating a Dashboard","\u002Fdashboards\u002Fcreating","07.dashboards\u002F02.creating",{"title":282,"path":283,"stem":284},"Editor","\u002Fdashboards\u002Feditor","07.dashboards\u002F03.editor",{"title":224,"icon":286,"path":287,"stem":288,"children":289,"page":62},"i-lucide-chart-bar","\u002Fdashboards\u002Fwidgets","07.dashboards\u002F04.widgets",[290,293,297,301,305,309,313,317,321,324,328],{"title":224,"path":291,"stem":292},"\u002Fdashboards\u002Fwidgets\u002Foverview","07.dashboards\u002F04.widgets\u002F01.overview",{"title":294,"path":295,"stem":296},"Editing a Widget","\u002Fdashboards\u002Fwidgets\u002Fediting-a-widget","07.dashboards\u002F04.widgets\u002F02.editing-a-widget",{"title":298,"path":299,"stem":300},"Indicators","\u002Fdashboards\u002Fwidgets\u002Findicators","07.dashboards\u002F04.widgets\u002F03.indicators",{"title":302,"path":303,"stem":304},"Comparison","\u002Fdashboards\u002Fwidgets\u002Fcomparison","07.dashboards\u002F04.widgets\u002F04.comparison",{"title":306,"path":307,"stem":308},"Trend","\u002Fdashboards\u002Fwidgets\u002Ftrend","07.dashboards\u002F04.widgets\u002F05.trend",{"title":310,"path":311,"stem":312},"Proportion","\u002Fdashboards\u002Fwidgets\u002Fproportion","07.dashboards\u002F04.widgets\u002F06.proportion",{"title":314,"path":315,"stem":316},"Distribution and Relation","\u002Fdashboards\u002Fwidgets\u002Fdistribution-and-relation","07.dashboards\u002F04.widgets\u002F07.distribution-and-relation",{"title":318,"path":319,"stem":320},"Maps","\u002Fdashboards\u002Fwidgets\u002Fmaps","07.dashboards\u002F04.widgets\u002F08.maps",{"title":92,"path":322,"stem":323},"\u002Fdashboards\u002Fwidgets\u002Ftables","07.dashboards\u002F04.widgets\u002F09.tables",{"title":325,"path":326,"stem":327},"Visualization and Insertion","\u002Fdashboards\u002Fwidgets\u002Fvisualization-and-insertion","07.dashboards\u002F04.widgets\u002F10.visualization-and-insertion",{"title":329,"path":330,"stem":331},"SQL Conventions","\u002Fdashboards\u002Fwidgets\u002Fsql-conventions","07.dashboards\u002F04.widgets\u002F11.sql-conventions",{"title":172,"icon":184,"path":333,"stem":334,"children":335,"page":62},"\u002Fdashboards\u002Fsettings","07.dashboards\u002F05.settings",[336,339,342,345,349,352],{"title":189,"path":337,"stem":338},"\u002Fdashboards\u002Fsettings\u002Fgeneral","07.dashboards\u002F05.settings\u002F01.general",{"title":258,"path":340,"stem":341},"\u002Fdashboards\u002Fsettings\u002Fvariables","07.dashboards\u002F05.settings\u002F02.variables",{"title":193,"path":343,"stem":344},"\u002Fdashboards\u002Fsettings\u002Fdata","07.dashboards\u002F05.settings\u002F03.data",{"title":346,"path":347,"stem":348},"Share","\u002Fdashboards\u002Fsettings\u002Fshare","07.dashboards\u002F05.settings\u002F04.share",{"title":207,"path":350,"stem":351},"\u002Fdashboards\u002Fsettings\u002Fsecurity","07.dashboards\u002F05.settings\u002F05.security",{"title":211,"path":353,"stem":354},"\u002Fdashboards\u002Fsettings\u002Fversions","07.dashboards\u002F05.settings\u002F06.versions",{"title":356,"icon":357,"path":358,"stem":359,"children":360,"page":62},"Workflows","i-lucide-workflow","\u002Fworkflows","08.workflows",[361,364,368,371,393,432],{"title":118,"path":362,"stem":363},"\u002Fworkflows\u002Foverview","08.workflows\u002F01.overview",{"title":365,"path":366,"stem":367},"Creating a Workflow","\u002Fworkflows\u002Fcreating","08.workflows\u002F02.creating",{"title":282,"path":369,"stem":370},"\u002Fworkflows\u002Feditor","08.workflows\u002F03.editor",{"title":372,"icon":373,"path":374,"stem":375,"children":376,"page":62},"Triggers","i-lucide-zap","\u002Fworkflows\u002Ftriggers","08.workflows\u002F04.triggers",[377,381,385,389],{"title":378,"path":379,"stem":380},"Manual","\u002Fworkflows\u002Ftriggers\u002Fmanual","08.workflows\u002F04.triggers\u002F01.manual",{"title":382,"path":383,"stem":384},"Database Event","\u002Fworkflows\u002Ftriggers\u002Fdatabase-event","08.workflows\u002F04.triggers\u002F02.database-event",{"title":386,"path":387,"stem":388},"Schedule","\u002Fworkflows\u002Ftriggers\u002Fschedule","08.workflows\u002F04.triggers\u002F03.schedule",{"title":390,"path":391,"stem":392},"Webhook","\u002Fworkflows\u002Ftriggers\u002Fwebhook","08.workflows\u002F04.triggers\u002F04.webhook",{"title":394,"icon":357,"path":395,"stem":396,"children":397,"page":62},"Steps","\u002Fworkflows\u002Fsteps","08.workflows\u002F05.steps",[398,401,405,408,412,416,420,424,428],{"title":193,"path":399,"stem":400},"\u002Fworkflows\u002Fsteps\u002Fdata","08.workflows\u002F05.steps\u002F01.data",{"title":402,"path":403,"stem":404},"Control","\u002Fworkflows\u002Fsteps\u002Fcontrol","08.workflows\u002F05.steps\u002F02.control",{"title":262,"path":406,"stem":407},"\u002Fworkflows\u002Fsteps\u002Fcode","08.workflows\u002F05.steps\u002F03.code",{"title":409,"path":410,"stem":411},"Integration","\u002Fworkflows\u002Fsteps\u002Fintegration","08.workflows\u002F05.steps\u002F04.integration",{"title":413,"path":414,"stem":415},"Communication","\u002Fworkflows\u002Fsteps\u002Fcommunication","08.workflows\u002F05.steps\u002F05.communication",{"title":417,"path":418,"stem":419},"Files","\u002Fworkflows\u002Fsteps\u002Ffiles","08.workflows\u002F05.steps\u002F06.files",{"title":421,"path":422,"stem":423},"Documents","\u002Fworkflows\u002Fsteps\u002Fdocuments","08.workflows\u002F05.steps\u002F07.documents",{"title":425,"path":426,"stem":427},"Composition","\u002Fworkflows\u002Fsteps\u002Fcomposition","08.workflows\u002F05.steps\u002F08.composition",{"title":429,"path":430,"stem":431},"Values","\u002Fworkflows\u002Fsteps\u002Fvalues","08.workflows\u002F05.steps\u002F09.values",{"title":172,"icon":184,"path":433,"stem":434,"children":435,"page":62},"\u002Fworkflows\u002Fsettings","08.workflows\u002F06.settings",[436,439,443,446,449],{"title":189,"path":437,"stem":438},"\u002Fworkflows\u002Fsettings\u002Fgeneral","08.workflows\u002F06.settings\u002F01.general",{"title":440,"path":441,"stem":442},"Trigger","\u002Fworkflows\u002Fsettings\u002Ftrigger","08.workflows\u002F06.settings\u002F02.trigger",{"title":207,"path":444,"stem":445},"\u002Fworkflows\u002Fsettings\u002Fsecurity","08.workflows\u002F06.settings\u002F03.security",{"title":211,"path":447,"stem":448},"\u002Fworkflows\u002Fsettings\u002Fversions","08.workflows\u002F06.settings\u002F04.versions",{"title":450,"path":451,"stem":452},"Runs","\u002Fworkflows\u002Fsettings\u002Fruns","08.workflows\u002F06.settings\u002F05.runs",{"title":417,"icon":454,"path":455,"stem":456,"children":457,"page":62},"i-lucide-files","\u002Ffiles","09.files",[458,461,465,469,473,477,481],{"title":118,"path":459,"stem":460},"\u002Ffiles\u002Foverview","09.files\u002F01.overview",{"title":462,"path":463,"stem":464},"Uploading","\u002Ffiles\u002Fuploading","09.files\u002F02.uploading",{"title":466,"path":467,"stem":468},"File Details","\u002Ffiles\u002Ffile-details","09.files\u002F03.file-details",{"title":470,"path":471,"stem":472},"Editing Files","\u002Ffiles\u002Fediting-files","09.files\u002F04.editing-files",{"title":474,"path":475,"stem":476},"Using Files in Tables","\u002Ffiles\u002Fusing-files-in-tables","09.files\u002F05.using-files-in-tables",{"title":478,"path":479,"stem":480},"Image Transformations","\u002Ffiles\u002Fimage-transformations","09.files\u002F06.image-transformations",{"title":482,"path":483,"stem":484},"Who Can See a File","\u002Ffiles\u002Fwho-can-see-a-file","09.files\u002F07.who-can-see-a-file",{"title":486,"icon":487,"path":488,"stem":489,"children":490,"page":62},"Templates","i-lucide-file-text","\u002Ftemplates","10.templates",[491,494,498,502],{"title":118,"path":492,"stem":493},"\u002Ftemplates\u002Foverview","10.templates\u002F01.overview",{"title":495,"path":496,"stem":497},"Emails","\u002Ftemplates\u002Femails","10.templates\u002F02.emails",{"title":499,"path":500,"stem":501},"PDF","\u002Ftemplates\u002Fpdf","10.templates\u002F03.pdf",{"title":503,"path":504,"stem":505},"System Emails","\u002Ftemplates\u002Fsystem-emails","10.templates\u002F04.system-emails",{"title":507,"icon":508,"path":509,"stem":510,"children":511,"page":62},"Users","i-lucide-users","\u002Fusers","11.users",[512,516,520,524,528],{"title":513,"path":514,"stem":515},"Managing Users","\u002Fusers\u002Fmanaging-users","11.users\u002F01.managing-users",{"title":517,"path":518,"stem":519},"A User's Page","\u002Fusers\u002Fa-users-page","11.users\u002F02.a-users-page",{"title":521,"path":522,"stem":523},"API Tokens","\u002Fusers\u002Fapi-tokens","11.users\u002F03.api-tokens",{"title":525,"path":526,"stem":527},"Sessions","\u002Fusers\u002Fsessions","11.users\u002F04.sessions",{"title":529,"icon":530,"path":531,"stem":532,"children":533,"page":62},"Insights","i-lucide-chart-line","\u002Fusers\u002Finsights","11.users\u002F05.insights",[534,538],{"title":535,"path":536,"stem":537},"Sign-ins","\u002Fusers\u002Finsights\u002Fsign-ins","11.users\u002F05.insights\u002F01.sign-ins",{"title":539,"path":540,"stem":541},"Activity","\u002Fusers\u002Finsights\u002Factivity","11.users\u002F05.insights\u002F02.activity",{"title":543,"icon":544,"path":545,"stem":546,"children":547,"page":62},"Roles","i-lucide-shield-check","\u002Froles","12.roles",[548,552,556,560,564,568,572],{"title":549,"path":550,"stem":551},"Creating a Role","\u002Froles\u002Fcreating-a-role","12.roles\u002F01.creating-a-role",{"title":553,"path":554,"stem":555},"Granting Permissions","\u002Froles\u002Fgranting-permissions","12.roles\u002F02.granting-permissions",{"title":557,"path":558,"stem":559},"Row Filters","\u002Froles\u002Frow-filters","12.roles\u002F03.row-filters",{"title":561,"path":562,"stem":563},"Payload Checks","\u002Froles\u002Fpayload-checks","12.roles\u002F04.payload-checks",{"title":565,"path":566,"stem":567},"Members","\u002Froles\u002Fmembers","12.roles\u002F05.members",{"title":569,"path":570,"stem":571},"Access Reviews","\u002Froles\u002Faccess-reviews","12.roles\u002F06.access-reviews",{"title":573,"path":574,"stem":575},"Delegated Administration","\u002Froles\u002Fdelegated-administration","12.roles\u002F07.delegated-administration",{"title":577,"icon":578,"path":579,"stem":580,"children":581,"page":62},"Logs","i-lucide-scroll-text","\u002Flogs","13.logs",[582,586,590],{"title":583,"path":584,"stem":585},"Audit Log","\u002Flogs\u002Faudit-log","13.logs\u002F01.audit-log",{"title":587,"path":588,"stem":589},"An Entry","\u002Flogs\u002Fan-entry","13.logs\u002F02.an-entry",{"title":591,"path":592,"stem":593},"Where Else It Shows","\u002Flogs\u002Fwhere-else-it-shows","13.logs\u002F03.where-else-it-shows",{"title":595,"icon":596,"path":597,"stem":598,"children":599,"page":62},"Data API","i-lucide-braces","\u002Fdata-api","14.data-api",[600,603,607,611,615,619,623,627,631,635,639,643],{"title":118,"path":601,"stem":602},"\u002Fdata-api\u002Foverview","14.data-api\u002F01.overview",{"title":604,"path":605,"stem":606},"Authentication","\u002Fdata-api\u002Fauthentication","14.data-api\u002F02.authentication",{"title":608,"path":609,"stem":610},"Reading","\u002Fdata-api\u002Freading","14.data-api\u002F03.reading",{"title":612,"path":613,"stem":614},"Filtering","\u002Fdata-api\u002Ffiltering","14.data-api\u002F04.filtering",{"title":616,"path":617,"stem":618},"Aggregating","\u002Fdata-api\u002Faggregating","14.data-api\u002F05.aggregating",{"title":620,"path":621,"stem":622},"Writing","\u002Fdata-api\u002Fwriting","14.data-api\u002F06.writing",{"title":624,"path":625,"stem":626},"Nested Writes","\u002Fdata-api\u002Fnested-writes","14.data-api\u002F07.nested-writes",{"title":628,"path":629,"stem":630},"Transactions","\u002Fdata-api\u002Ftransactions","14.data-api\u002F08.transactions",{"title":632,"path":633,"stem":634},"Calling Functions","\u002Fdata-api\u002Fcalling-functions","14.data-api\u002F09.calling-functions",{"title":636,"path":637,"stem":638},"OpenAPI","\u002Fdata-api\u002Fopenapi","14.data-api\u002F10.openapi",{"title":640,"path":641,"stem":642},"Routes","\u002Fdata-api\u002Froutes","14.data-api\u002F11.routes",{"title":644,"path":645,"stem":646},"A client, end to end","\u002Fdata-api\u002Fa-client","14.data-api\u002F12.a-client",{"title":172,"icon":648,"path":649,"stem":650,"children":651,"page":62},"i-lucide-settings","\u002Fsettings","15.settings",[652,655,659,662,665],{"title":189,"path":653,"stem":654},"\u002Fsettings\u002Fgeneral","15.settings\u002F01.general",{"title":656,"path":657,"stem":658},"Access","\u002Fsettings\u002Faccess","15.settings\u002F02.access",{"title":207,"path":660,"stem":661},"\u002Fsettings\u002Fsecurity","15.settings\u002F03.security",{"title":595,"path":663,"stem":664},"\u002Fsettings\u002Fdata-api","15.settings\u002F04.data-api",{"title":666,"path":667,"stem":668},"Features","\u002Fsettings\u002Ffeatures","15.settings\u002F05.features",{"title":670,"icon":671,"path":672,"stem":673,"children":674,"page":62},"User Profile","i-lucide-circle-user","\u002Fuser-profile","16.user-profile",[675,679,682,686,690],{"title":676,"path":677,"stem":678},"My Account","\u002Fuser-profile\u002Fmy-account","16.user-profile\u002F01.my-account",{"title":525,"path":680,"stem":681},"\u002Fuser-profile\u002Fsessions","16.user-profile\u002F02.sessions",{"title":683,"path":684,"stem":685},"Tokens","\u002Fuser-profile\u002Ftokens","16.user-profile\u002F03.tokens",{"title":687,"path":688,"stem":689},"Preferences","\u002Fuser-profile\u002Fpreferences","16.user-profile\u002F04.preferences",{"title":539,"path":691,"stem":692},"\u002Fuser-profile\u002Factivity","16.user-profile\u002F05.activity",{"title":694,"icon":695,"path":696,"stem":697,"children":698,"page":62},"AI Agents","i-lucide-bot","\u002Fai-agents","17.ai-agents",[699,702,705,709,713,717],{"title":118,"path":700,"stem":701},"\u002Fai-agents\u002Foverview","17.ai-agents\u002F01.overview",{"title":683,"path":703,"stem":704},"\u002Fai-agents\u002Ftokens","17.ai-agents\u002F02.tokens",{"title":706,"path":707,"stem":708},"MCP Server","\u002Fai-agents\u002Fmcp-server","17.ai-agents\u002F03.mcp-server",{"title":710,"path":711,"stem":712},"Recipes","\u002Fai-agents\u002Frecipes","17.ai-agents\u002F04.recipes",{"title":714,"path":715,"stem":716},"Tools","\u002Fai-agents\u002Ftools","17.ai-agents\u002F05.tools",{"title":718,"path":719,"stem":720},"llms.txt","\u002Fai-agents\u002Fllms-txt","17.ai-agents\u002F06.llms-txt",{"title":722,"icon":723,"path":724,"stem":725,"children":726,"page":62},"Operations","i-lucide-server","\u002Foperations","18.operations",[727,731,735,739,743],{"title":728,"path":729,"stem":730},"Deployment","\u002Foperations\u002Fdeployment","18.operations\u002F01.deployment",{"title":732,"path":733,"stem":734},"PostgreSQL","\u002Foperations\u002Fpostgresql","18.operations\u002F02.postgresql",{"title":736,"path":737,"stem":738},"Public URL, Proxy and CORS","\u002Foperations\u002Fpublic-url-proxy-cors","18.operations\u002F03.public-url-proxy-cors",{"title":740,"path":741,"stem":742},"Backup and Restore","\u002Foperations\u002Fbackup-restore","18.operations\u002F04.backup-restore",{"title":744,"path":745,"stem":746},"Upgrading","\u002Foperations\u002Fupgrading","18.operations\u002F05.upgrading",{"title":748,"icon":749,"path":750,"stem":751,"children":752,"page":62},"Reference","i-lucide-library","\u002Freference","19.reference",[753,757,761,765,769],{"title":754,"path":755,"stem":756},"Query Language","\u002Freference\u002Fquery-language","19.reference\u002F01.query-language",{"title":758,"path":759,"stem":760},"Errors","\u002Freference\u002Ferrors","19.reference\u002F02.errors",{"title":762,"path":763,"stem":764},"Admin API","\u002Freference\u002Fadmin-api","19.reference\u002F03.admin-api",{"title":766,"path":767,"stem":768},"Authentication API","\u002Freference\u002Fauth-api","19.reference\u002F04.auth-api",{"title":770,"path":771,"stem":772},"Environment Variables","\u002Freference\u002Fenvironment","19.reference\u002F05.environment",{"id":774,"title":710,"admin":775,"body":776,"description":4498,"extension":4499,"links":775,"meta":4500,"navigation":4501,"path":711,"seo":4502,"stem":712,"__hash__":4503},"docs\u002F17.ai-agents\u002F04.recipes.md",null,{"type":777,"value":778,"toc":4488},"minimark",[779,788,794,805,826,831,841,2211,2215,2222,2776,2780,2787,3137,3141,3148,3572,3582,3586,3593,4199,4203,4210,4426,4430,4468,4472,4484],[780,781,782,783,787],"p",{},"Everything you build by hand in TotalBase, an agent can build for you through the ",[784,785,786],"a",{"href":707},"MCP server",". These recipes build part of Acme's field service application, one request at a time: a table, who may see it, a screen, a dashboard, an automation and the menu. Each shows what you ask, and what you get.",[789,790],"screenshot",{"caption":791,"id":792,"kind":793},"Acme's application built from nothing through the MCP server: each tool call on the left, as an agent makes them, the admin filling up on the right, ending in the App.","recipes-video","video",[780,795,796,800,801,804],{},[797,798,799],"strong",{},"Result"," shows what the agent built, as people see it. ",[797,802,803],{},"Calls"," shows the MCP calls it made, with their real arguments: you don't write them, the agent does, but they show exactly what happened and what the agent can and can't do.",[806,807,808],"tip",{},[780,809,810,811,815,816,815,819,822,823,825],{},"Ask in your own words and your own language. The agent reads TotalBase's guides on connecting, looks at what exists first (",[812,813,814],"code",{},"describe_table",", ",[812,817,818],{},"list_roles",[812,820,821],{},"list_dataviews","), and chooses the calls itself. These recipes assume an agent connected with an administrator's token: see ",[784,824,16],{"href":17},".",[827,828,830],"h2",{"id":829},"a-table-with-its-rules","A table with its rules",[832,833,835],"callout",{"icon":834},"i-lucide-message-square-text",[780,836,837],{},[838,839,840],"em",{},"\"Create a work_orders table: a number assigned automatically, a site, the branch that handles it, a priority (low, normal, high, urgent), a status (new, assigned, in progress, completed, cancelled), the technician, a description and a resolution. A completed order must have a resolution.\"",[842,843,844,868],"tabs",{},[845,846,848,852,855],"tabs-item",{"icon":847,"label":799},"i-lucide-eye",[789,849],{"caption":850,"id":851},"Database › work_orders as the agent left it: its columns, the CHECK on the resolution and the status colors.","recipe-table",[780,853,854],{},"The agent created the table, its keys and constraints in one transaction, exposed it to the API, and labeled and colored its values.",[780,856,857,858,861,862,865,866,825],{},"Database › ",[812,859,860],{},"work_orders"," shows the table, its ",[812,863,864],{},"CHECK"," constraints and its presentation. The rule about the resolution is PostgreSQL's: it holds for every writer, the agent included. See ",[784,867,92],{"href":93},[845,869,871,874,1844,1847],{"icon":870,"label":803},"i-lucide-code",[780,872,873],{},"The agent makes one call: the table, its keys, constraints and exposure together, in one transaction.",[875,876,881],"pre",{"className":877,"code":878,"language":879,"meta":880,"style":880},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","create_table {\n  \"schema\": \"public\",\n  \"name\": \"work_orders\",\n  \"columns\": [\n    { \"name\": \"id\", \"data_type\": \"uuid\", \"primary_key\": true, \"default\": \"gen_random_uuid()\" },\n    { \"name\": \"number\", \"data_type\": \"bigint\", \"identity\": \"ALWAYS\" },\n    { \"name\": \"site\", \"data_type\": \"uuid\", \"nullable\": false,\n      \"foreign_key\": { \"references_schema\": \"public\", \"references_table\": \"sites\", \"references_column\": \"id\", \"on_delete\": \"RESTRICT\" } },\n    { \"name\": \"priority\", \"data_type\": \"text\", \"nullable\": false, \"default\": \"'NORMAL'\",\n      \"check\": \"priority IN ('LOW','NORMAL','HIGH','URGENT')\" },\n    { \"name\": \"status\", \"data_type\": \"text\", \"nullable\": false, \"default\": \"'NEW'\",\n      \"check\": \"status IN ('NEW','ASSIGNED','IN_PROGRESS','COMPLETED','CANCELLED')\" },\n    { \"name\": \"branch\", \"data_type\": \"uuid\", \"nullable\": false,\n      \"foreign_key\": { \"references_schema\": \"public\", \"references_table\": \"branches\", \"references_column\": \"id\" } },\n    { \"name\": \"technician\", \"data_type\": \"uuid\",\n      \"foreign_key\": { \"references_schema\": \"public\", \"references_table\": \"technicians\", \"references_column\": \"id\", \"on_delete\": \"SET NULL\" } },\n    { \"name\": \"description\", \"data_type\": \"text\", \"nullable\": false },\n    { \"name\": \"resolution\", \"data_type\": \"text\",\n      \"check\": \"status \u003C> 'COMPLETED' OR resolution IS NOT NULL\",\n      \"check_message\": \"Write the resolution before completing the order.\" }\n  ],\n  \"expose_methods\": [\"GET\", \"POST\", \"PATCH\", \"DELETE\"],\n  \"auto_presentation\": true\n}\n","json","",[812,882,883,896,924,944,959,1033,1090,1140,1230,1297,1318,1383,1403,1451,1515,1553,1634,1685,1723,1743,1765,1771,1823,1838],{"__ignoreMap":880},[884,885,888,892],"span",{"class":886,"line":887},"line",1,[884,889,891],{"class":890},"sTEyZ","create_table ",[884,893,895],{"class":894},"sMK4o","{\n",[884,897,899,902,906,909,912,915,919,921],{"class":886,"line":898},2,[884,900,901],{"class":894},"  \"",[884,903,905],{"class":904},"spNyl","schema",[884,907,908],{"class":894},"\"",[884,910,911],{"class":894},":",[884,913,914],{"class":894}," \"",[884,916,918],{"class":917},"sfazB","public",[884,920,908],{"class":894},[884,922,923],{"class":894},",\n",[884,925,927,929,932,934,936,938,940,942],{"class":886,"line":926},3,[884,928,901],{"class":894},[884,930,931],{"class":904},"name",[884,933,908],{"class":894},[884,935,911],{"class":894},[884,937,914],{"class":894},[884,939,860],{"class":917},[884,941,908],{"class":894},[884,943,923],{"class":894},[884,945,947,949,952,954,956],{"class":886,"line":946},4,[884,948,901],{"class":894},[884,950,951],{"class":904},"columns",[884,953,908],{"class":894},[884,955,911],{"class":894},[884,957,958],{"class":894}," [\n",[884,960,962,965,967,970,972,974,976,979,981,984,986,989,991,993,995,998,1000,1002,1004,1007,1009,1011,1014,1016,1019,1021,1023,1025,1028,1030],{"class":886,"line":961},5,[884,963,964],{"class":894},"    {",[884,966,914],{"class":894},[884,968,931],{"class":969},"sBMFI",[884,971,908],{"class":894},[884,973,911],{"class":894},[884,975,914],{"class":894},[884,977,978],{"class":917},"id",[884,980,908],{"class":894},[884,982,983],{"class":894},",",[884,985,914],{"class":894},[884,987,988],{"class":969},"data_type",[884,990,908],{"class":894},[884,992,911],{"class":894},[884,994,914],{"class":894},[884,996,997],{"class":917},"uuid",[884,999,908],{"class":894},[884,1001,983],{"class":894},[884,1003,914],{"class":894},[884,1005,1006],{"class":969},"primary_key",[884,1008,908],{"class":894},[884,1010,911],{"class":894},[884,1012,1013],{"class":894}," true,",[884,1015,914],{"class":894},[884,1017,1018],{"class":969},"default",[884,1020,908],{"class":894},[884,1022,911],{"class":894},[884,1024,914],{"class":894},[884,1026,1027],{"class":917},"gen_random_uuid()",[884,1029,908],{"class":894},[884,1031,1032],{"class":894}," },\n",[884,1034,1036,1038,1040,1042,1044,1046,1048,1051,1053,1055,1057,1059,1061,1063,1065,1068,1070,1072,1074,1077,1079,1081,1083,1086,1088],{"class":886,"line":1035},6,[884,1037,964],{"class":894},[884,1039,914],{"class":894},[884,1041,931],{"class":969},[884,1043,908],{"class":894},[884,1045,911],{"class":894},[884,1047,914],{"class":894},[884,1049,1050],{"class":917},"number",[884,1052,908],{"class":894},[884,1054,983],{"class":894},[884,1056,914],{"class":894},[884,1058,988],{"class":969},[884,1060,908],{"class":894},[884,1062,911],{"class":894},[884,1064,914],{"class":894},[884,1066,1067],{"class":917},"bigint",[884,1069,908],{"class":894},[884,1071,983],{"class":894},[884,1073,914],{"class":894},[884,1075,1076],{"class":969},"identity",[884,1078,908],{"class":894},[884,1080,911],{"class":894},[884,1082,914],{"class":894},[884,1084,1085],{"class":917},"ALWAYS",[884,1087,908],{"class":894},[884,1089,1032],{"class":894},[884,1091,1093,1095,1097,1099,1101,1103,1105,1108,1110,1112,1114,1116,1118,1120,1122,1124,1126,1128,1130,1133,1135,1137],{"class":886,"line":1092},7,[884,1094,964],{"class":894},[884,1096,914],{"class":894},[884,1098,931],{"class":969},[884,1100,908],{"class":894},[884,1102,911],{"class":894},[884,1104,914],{"class":894},[884,1106,1107],{"class":917},"site",[884,1109,908],{"class":894},[884,1111,983],{"class":894},[884,1113,914],{"class":894},[884,1115,988],{"class":969},[884,1117,908],{"class":894},[884,1119,911],{"class":894},[884,1121,914],{"class":894},[884,1123,997],{"class":917},[884,1125,908],{"class":894},[884,1127,983],{"class":894},[884,1129,914],{"class":894},[884,1131,1132],{"class":969},"nullable",[884,1134,908],{"class":894},[884,1136,911],{"class":894},[884,1138,1139],{"class":894}," false,\n",[884,1141,1143,1146,1149,1151,1153,1156,1158,1162,1164,1166,1168,1170,1172,1174,1176,1179,1181,1183,1185,1188,1190,1192,1194,1197,1199,1201,1203,1205,1207,1209,1211,1214,1216,1218,1220,1223,1225,1228],{"class":886,"line":1142},8,[884,1144,1145],{"class":894},"      \"",[884,1147,1148],{"class":969},"foreign_key",[884,1150,908],{"class":894},[884,1152,911],{"class":894},[884,1154,1155],{"class":894}," {",[884,1157,914],{"class":894},[884,1159,1161],{"class":1160},"sbssI","references_schema",[884,1163,908],{"class":894},[884,1165,911],{"class":894},[884,1167,914],{"class":894},[884,1169,918],{"class":917},[884,1171,908],{"class":894},[884,1173,983],{"class":894},[884,1175,914],{"class":894},[884,1177,1178],{"class":1160},"references_table",[884,1180,908],{"class":894},[884,1182,911],{"class":894},[884,1184,914],{"class":894},[884,1186,1187],{"class":917},"sites",[884,1189,908],{"class":894},[884,1191,983],{"class":894},[884,1193,914],{"class":894},[884,1195,1196],{"class":1160},"references_column",[884,1198,908],{"class":894},[884,1200,911],{"class":894},[884,1202,914],{"class":894},[884,1204,978],{"class":917},[884,1206,908],{"class":894},[884,1208,983],{"class":894},[884,1210,914],{"class":894},[884,1212,1213],{"class":1160},"on_delete",[884,1215,908],{"class":894},[884,1217,911],{"class":894},[884,1219,914],{"class":894},[884,1221,1222],{"class":917},"RESTRICT",[884,1224,908],{"class":894},[884,1226,1227],{"class":894}," }",[884,1229,1032],{"class":894},[884,1231,1233,1235,1237,1239,1241,1243,1245,1248,1250,1252,1254,1256,1258,1260,1262,1265,1267,1269,1271,1273,1275,1277,1280,1282,1284,1286,1288,1290,1293,1295],{"class":886,"line":1232},9,[884,1234,964],{"class":894},[884,1236,914],{"class":894},[884,1238,931],{"class":969},[884,1240,908],{"class":894},[884,1242,911],{"class":894},[884,1244,914],{"class":894},[884,1246,1247],{"class":917},"priority",[884,1249,908],{"class":894},[884,1251,983],{"class":894},[884,1253,914],{"class":894},[884,1255,988],{"class":969},[884,1257,908],{"class":894},[884,1259,911],{"class":894},[884,1261,914],{"class":894},[884,1263,1264],{"class":917},"text",[884,1266,908],{"class":894},[884,1268,983],{"class":894},[884,1270,914],{"class":894},[884,1272,1132],{"class":969},[884,1274,908],{"class":894},[884,1276,911],{"class":894},[884,1278,1279],{"class":894}," false,",[884,1281,914],{"class":894},[884,1283,1018],{"class":969},[884,1285,908],{"class":894},[884,1287,911],{"class":894},[884,1289,914],{"class":894},[884,1291,1292],{"class":917},"'NORMAL'",[884,1294,908],{"class":894},[884,1296,923],{"class":894},[884,1298,1300,1302,1305,1307,1309,1311,1314,1316],{"class":886,"line":1299},10,[884,1301,1145],{"class":894},[884,1303,1304],{"class":969},"check",[884,1306,908],{"class":894},[884,1308,911],{"class":894},[884,1310,914],{"class":894},[884,1312,1313],{"class":917},"priority IN ('LOW','NORMAL','HIGH','URGENT')",[884,1315,908],{"class":894},[884,1317,1032],{"class":894},[884,1319,1321,1323,1325,1327,1329,1331,1333,1336,1338,1340,1342,1344,1346,1348,1350,1352,1354,1356,1358,1360,1362,1364,1366,1368,1370,1372,1374,1376,1379,1381],{"class":886,"line":1320},11,[884,1322,964],{"class":894},[884,1324,914],{"class":894},[884,1326,931],{"class":969},[884,1328,908],{"class":894},[884,1330,911],{"class":894},[884,1332,914],{"class":894},[884,1334,1335],{"class":917},"status",[884,1337,908],{"class":894},[884,1339,983],{"class":894},[884,1341,914],{"class":894},[884,1343,988],{"class":969},[884,1345,908],{"class":894},[884,1347,911],{"class":894},[884,1349,914],{"class":894},[884,1351,1264],{"class":917},[884,1353,908],{"class":894},[884,1355,983],{"class":894},[884,1357,914],{"class":894},[884,1359,1132],{"class":969},[884,1361,908],{"class":894},[884,1363,911],{"class":894},[884,1365,1279],{"class":894},[884,1367,914],{"class":894},[884,1369,1018],{"class":969},[884,1371,908],{"class":894},[884,1373,911],{"class":894},[884,1375,914],{"class":894},[884,1377,1378],{"class":917},"'NEW'",[884,1380,908],{"class":894},[884,1382,923],{"class":894},[884,1384,1386,1388,1390,1392,1394,1396,1399,1401],{"class":886,"line":1385},12,[884,1387,1145],{"class":894},[884,1389,1304],{"class":969},[884,1391,908],{"class":894},[884,1393,911],{"class":894},[884,1395,914],{"class":894},[884,1397,1398],{"class":917},"status IN ('NEW','ASSIGNED','IN_PROGRESS','COMPLETED','CANCELLED')",[884,1400,908],{"class":894},[884,1402,1032],{"class":894},[884,1404,1406,1408,1410,1412,1414,1416,1418,1421,1423,1425,1427,1429,1431,1433,1435,1437,1439,1441,1443,1445,1447,1449],{"class":886,"line":1405},13,[884,1407,964],{"class":894},[884,1409,914],{"class":894},[884,1411,931],{"class":969},[884,1413,908],{"class":894},[884,1415,911],{"class":894},[884,1417,914],{"class":894},[884,1419,1420],{"class":917},"branch",[884,1422,908],{"class":894},[884,1424,983],{"class":894},[884,1426,914],{"class":894},[884,1428,988],{"class":969},[884,1430,908],{"class":894},[884,1432,911],{"class":894},[884,1434,914],{"class":894},[884,1436,997],{"class":917},[884,1438,908],{"class":894},[884,1440,983],{"class":894},[884,1442,914],{"class":894},[884,1444,1132],{"class":969},[884,1446,908],{"class":894},[884,1448,911],{"class":894},[884,1450,1139],{"class":894},[884,1452,1454,1456,1458,1460,1462,1464,1466,1468,1470,1472,1474,1476,1478,1480,1482,1484,1486,1488,1490,1493,1495,1497,1499,1501,1503,1505,1507,1509,1511,1513],{"class":886,"line":1453},14,[884,1455,1145],{"class":894},[884,1457,1148],{"class":969},[884,1459,908],{"class":894},[884,1461,911],{"class":894},[884,1463,1155],{"class":894},[884,1465,914],{"class":894},[884,1467,1161],{"class":1160},[884,1469,908],{"class":894},[884,1471,911],{"class":894},[884,1473,914],{"class":894},[884,1475,918],{"class":917},[884,1477,908],{"class":894},[884,1479,983],{"class":894},[884,1481,914],{"class":894},[884,1483,1178],{"class":1160},[884,1485,908],{"class":894},[884,1487,911],{"class":894},[884,1489,914],{"class":894},[884,1491,1492],{"class":917},"branches",[884,1494,908],{"class":894},[884,1496,983],{"class":894},[884,1498,914],{"class":894},[884,1500,1196],{"class":1160},[884,1502,908],{"class":894},[884,1504,911],{"class":894},[884,1506,914],{"class":894},[884,1508,978],{"class":917},[884,1510,908],{"class":894},[884,1512,1227],{"class":894},[884,1514,1032],{"class":894},[884,1516,1518,1520,1522,1524,1526,1528,1530,1533,1535,1537,1539,1541,1543,1545,1547,1549,1551],{"class":886,"line":1517},15,[884,1519,964],{"class":894},[884,1521,914],{"class":894},[884,1523,931],{"class":969},[884,1525,908],{"class":894},[884,1527,911],{"class":894},[884,1529,914],{"class":894},[884,1531,1532],{"class":917},"technician",[884,1534,908],{"class":894},[884,1536,983],{"class":894},[884,1538,914],{"class":894},[884,1540,988],{"class":969},[884,1542,908],{"class":894},[884,1544,911],{"class":894},[884,1546,914],{"class":894},[884,1548,997],{"class":917},[884,1550,908],{"class":894},[884,1552,923],{"class":894},[884,1554,1556,1558,1560,1562,1564,1566,1568,1570,1572,1574,1576,1578,1580,1582,1584,1586,1588,1590,1592,1595,1597,1599,1601,1603,1605,1607,1609,1611,1613,1615,1617,1619,1621,1623,1625,1628,1630,1632],{"class":886,"line":1555},16,[884,1557,1145],{"class":894},[884,1559,1148],{"class":969},[884,1561,908],{"class":894},[884,1563,911],{"class":894},[884,1565,1155],{"class":894},[884,1567,914],{"class":894},[884,1569,1161],{"class":1160},[884,1571,908],{"class":894},[884,1573,911],{"class":894},[884,1575,914],{"class":894},[884,1577,918],{"class":917},[884,1579,908],{"class":894},[884,1581,983],{"class":894},[884,1583,914],{"class":894},[884,1585,1178],{"class":1160},[884,1587,908],{"class":894},[884,1589,911],{"class":894},[884,1591,914],{"class":894},[884,1593,1594],{"class":917},"technicians",[884,1596,908],{"class":894},[884,1598,983],{"class":894},[884,1600,914],{"class":894},[884,1602,1196],{"class":1160},[884,1604,908],{"class":894},[884,1606,911],{"class":894},[884,1608,914],{"class":894},[884,1610,978],{"class":917},[884,1612,908],{"class":894},[884,1614,983],{"class":894},[884,1616,914],{"class":894},[884,1618,1213],{"class":1160},[884,1620,908],{"class":894},[884,1622,911],{"class":894},[884,1624,914],{"class":894},[884,1626,1627],{"class":917},"SET NULL",[884,1629,908],{"class":894},[884,1631,1227],{"class":894},[884,1633,1032],{"class":894},[884,1635,1637,1639,1641,1643,1645,1647,1649,1652,1654,1656,1658,1660,1662,1664,1666,1668,1670,1672,1674,1676,1678,1680,1683],{"class":886,"line":1636},17,[884,1638,964],{"class":894},[884,1640,914],{"class":894},[884,1642,931],{"class":969},[884,1644,908],{"class":894},[884,1646,911],{"class":894},[884,1648,914],{"class":894},[884,1650,1651],{"class":917},"description",[884,1653,908],{"class":894},[884,1655,983],{"class":894},[884,1657,914],{"class":894},[884,1659,988],{"class":969},[884,1661,908],{"class":894},[884,1663,911],{"class":894},[884,1665,914],{"class":894},[884,1667,1264],{"class":917},[884,1669,908],{"class":894},[884,1671,983],{"class":894},[884,1673,914],{"class":894},[884,1675,1132],{"class":969},[884,1677,908],{"class":894},[884,1679,911],{"class":894},[884,1681,1682],{"class":894}," false",[884,1684,1032],{"class":894},[884,1686,1688,1690,1692,1694,1696,1698,1700,1703,1705,1707,1709,1711,1713,1715,1717,1719,1721],{"class":886,"line":1687},18,[884,1689,964],{"class":894},[884,1691,914],{"class":894},[884,1693,931],{"class":969},[884,1695,908],{"class":894},[884,1697,911],{"class":894},[884,1699,914],{"class":894},[884,1701,1702],{"class":917},"resolution",[884,1704,908],{"class":894},[884,1706,983],{"class":894},[884,1708,914],{"class":894},[884,1710,988],{"class":969},[884,1712,908],{"class":894},[884,1714,911],{"class":894},[884,1716,914],{"class":894},[884,1718,1264],{"class":917},[884,1720,908],{"class":894},[884,1722,923],{"class":894},[884,1724,1726,1728,1730,1732,1734,1736,1739,1741],{"class":886,"line":1725},19,[884,1727,1145],{"class":894},[884,1729,1304],{"class":969},[884,1731,908],{"class":894},[884,1733,911],{"class":894},[884,1735,914],{"class":894},[884,1737,1738],{"class":917},"status \u003C> 'COMPLETED' OR resolution IS NOT NULL",[884,1740,908],{"class":894},[884,1742,923],{"class":894},[884,1744,1746,1748,1751,1753,1755,1757,1760,1762],{"class":886,"line":1745},20,[884,1747,1145],{"class":894},[884,1749,1750],{"class":969},"check_message",[884,1752,908],{"class":894},[884,1754,911],{"class":894},[884,1756,914],{"class":894},[884,1758,1759],{"class":917},"Write the resolution before completing the order.",[884,1761,908],{"class":894},[884,1763,1764],{"class":894}," }\n",[884,1766,1768],{"class":886,"line":1767},21,[884,1769,1770],{"class":894},"  ],\n",[884,1772,1774,1776,1779,1781,1783,1786,1788,1791,1793,1795,1797,1800,1802,1804,1806,1809,1811,1813,1815,1818,1820],{"class":886,"line":1773},22,[884,1775,901],{"class":894},[884,1777,1778],{"class":904},"expose_methods",[884,1780,908],{"class":894},[884,1782,911],{"class":894},[884,1784,1785],{"class":894}," [",[884,1787,908],{"class":894},[884,1789,1790],{"class":917},"GET",[884,1792,908],{"class":894},[884,1794,983],{"class":894},[884,1796,914],{"class":894},[884,1798,1799],{"class":917},"POST",[884,1801,908],{"class":894},[884,1803,983],{"class":894},[884,1805,914],{"class":894},[884,1807,1808],{"class":917},"PATCH",[884,1810,908],{"class":894},[884,1812,983],{"class":894},[884,1814,914],{"class":894},[884,1816,1817],{"class":917},"DELETE",[884,1819,908],{"class":894},[884,1821,1822],{"class":894},"],\n",[884,1824,1826,1828,1831,1833,1835],{"class":886,"line":1825},23,[884,1827,901],{"class":894},[884,1829,1830],{"class":904},"auto_presentation",[884,1832,908],{"class":894},[884,1834,911],{"class":894},[884,1836,1837],{"class":894}," true\n",[884,1839,1841],{"class":886,"line":1840},24,[884,1842,1843],{"class":894},"}\n",[780,1845,1846],{},"Then it labels and colors the values users will see:",[875,1848,1850],{"className":877,"code":1849,"language":879,"meta":880,"style":880},"set_column_presentation {\n  \"schema\": \"public\", \"name\": \"work_orders\", \"column\": \"status\", \"merge\": true,\n  \"presentation\": { \"label\": \"Status\", \"options\": {\n    \"NEW\": { \"label\": \"New\", \"color\": \"neutral\" },\n    \"ASSIGNED\": { \"label\": \"Assigned\", \"color\": \"info\" },\n    \"IN_PROGRESS\": { \"label\": \"In progress\", \"color\": \"warning\" },\n    \"COMPLETED\": { \"label\": \"Completed\", \"color\": \"success\" },\n    \"CANCELLED\": { \"label\": \"Cancelled\", \"color\": \"error\" } } }\n}\n",[812,1851,1852,1859,1922,1965,2015,2062,2109,2156,2207],{"__ignoreMap":880},[884,1853,1854,1857],{"class":886,"line":887},[884,1855,1856],{"class":890},"set_column_presentation ",[884,1858,895],{"class":894},[884,1860,1861,1863,1865,1867,1869,1871,1873,1875,1877,1879,1881,1883,1885,1887,1889,1891,1893,1895,1898,1900,1902,1904,1906,1908,1910,1912,1915,1917,1919],{"class":886,"line":898},[884,1862,901],{"class":894},[884,1864,905],{"class":904},[884,1866,908],{"class":894},[884,1868,911],{"class":894},[884,1870,914],{"class":894},[884,1872,918],{"class":917},[884,1874,908],{"class":894},[884,1876,983],{"class":894},[884,1878,914],{"class":894},[884,1880,931],{"class":904},[884,1882,908],{"class":894},[884,1884,911],{"class":894},[884,1886,914],{"class":894},[884,1888,860],{"class":917},[884,1890,908],{"class":894},[884,1892,983],{"class":894},[884,1894,914],{"class":894},[884,1896,1897],{"class":904},"column",[884,1899,908],{"class":894},[884,1901,911],{"class":894},[884,1903,914],{"class":894},[884,1905,1335],{"class":917},[884,1907,908],{"class":894},[884,1909,983],{"class":894},[884,1911,914],{"class":894},[884,1913,1914],{"class":904},"merge",[884,1916,908],{"class":894},[884,1918,911],{"class":894},[884,1920,1921],{"class":894}," true,\n",[884,1923,1924,1926,1929,1931,1933,1935,1937,1940,1942,1944,1946,1949,1951,1953,1955,1958,1960,1962],{"class":886,"line":926},[884,1925,901],{"class":894},[884,1927,1928],{"class":904},"presentation",[884,1930,908],{"class":894},[884,1932,911],{"class":894},[884,1934,1155],{"class":894},[884,1936,914],{"class":894},[884,1938,1939],{"class":969},"label",[884,1941,908],{"class":894},[884,1943,911],{"class":894},[884,1945,914],{"class":894},[884,1947,1948],{"class":917},"Status",[884,1950,908],{"class":894},[884,1952,983],{"class":894},[884,1954,914],{"class":894},[884,1956,1957],{"class":969},"options",[884,1959,908],{"class":894},[884,1961,911],{"class":894},[884,1963,1964],{"class":894}," {\n",[884,1966,1967,1970,1973,1975,1977,1979,1981,1984,1986,1988,1990,1993,1995,1997,1999,2002,2004,2006,2008,2011,2013],{"class":886,"line":946},[884,1968,1969],{"class":894},"    \"",[884,1971,1972],{"class":1160},"NEW",[884,1974,908],{"class":894},[884,1976,911],{"class":894},[884,1978,1155],{"class":894},[884,1980,914],{"class":894},[884,1982,1939],{"class":1983},"swJcz",[884,1985,908],{"class":894},[884,1987,911],{"class":894},[884,1989,914],{"class":894},[884,1991,1992],{"class":917},"New",[884,1994,908],{"class":894},[884,1996,983],{"class":894},[884,1998,914],{"class":894},[884,2000,2001],{"class":1983},"color",[884,2003,908],{"class":894},[884,2005,911],{"class":894},[884,2007,914],{"class":894},[884,2009,2010],{"class":917},"neutral",[884,2012,908],{"class":894},[884,2014,1032],{"class":894},[884,2016,2017,2019,2022,2024,2026,2028,2030,2032,2034,2036,2038,2041,2043,2045,2047,2049,2051,2053,2055,2058,2060],{"class":886,"line":961},[884,2018,1969],{"class":894},[884,2020,2021],{"class":1160},"ASSIGNED",[884,2023,908],{"class":894},[884,2025,911],{"class":894},[884,2027,1155],{"class":894},[884,2029,914],{"class":894},[884,2031,1939],{"class":1983},[884,2033,908],{"class":894},[884,2035,911],{"class":894},[884,2037,914],{"class":894},[884,2039,2040],{"class":917},"Assigned",[884,2042,908],{"class":894},[884,2044,983],{"class":894},[884,2046,914],{"class":894},[884,2048,2001],{"class":1983},[884,2050,908],{"class":894},[884,2052,911],{"class":894},[884,2054,914],{"class":894},[884,2056,2057],{"class":917},"info",[884,2059,908],{"class":894},[884,2061,1032],{"class":894},[884,2063,2064,2066,2069,2071,2073,2075,2077,2079,2081,2083,2085,2088,2090,2092,2094,2096,2098,2100,2102,2105,2107],{"class":886,"line":1035},[884,2065,1969],{"class":894},[884,2067,2068],{"class":1160},"IN_PROGRESS",[884,2070,908],{"class":894},[884,2072,911],{"class":894},[884,2074,1155],{"class":894},[884,2076,914],{"class":894},[884,2078,1939],{"class":1983},[884,2080,908],{"class":894},[884,2082,911],{"class":894},[884,2084,914],{"class":894},[884,2086,2087],{"class":917},"In progress",[884,2089,908],{"class":894},[884,2091,983],{"class":894},[884,2093,914],{"class":894},[884,2095,2001],{"class":1983},[884,2097,908],{"class":894},[884,2099,911],{"class":894},[884,2101,914],{"class":894},[884,2103,2104],{"class":917},"warning",[884,2106,908],{"class":894},[884,2108,1032],{"class":894},[884,2110,2111,2113,2116,2118,2120,2122,2124,2126,2128,2130,2132,2135,2137,2139,2141,2143,2145,2147,2149,2152,2154],{"class":886,"line":1092},[884,2112,1969],{"class":894},[884,2114,2115],{"class":1160},"COMPLETED",[884,2117,908],{"class":894},[884,2119,911],{"class":894},[884,2121,1155],{"class":894},[884,2123,914],{"class":894},[884,2125,1939],{"class":1983},[884,2127,908],{"class":894},[884,2129,911],{"class":894},[884,2131,914],{"class":894},[884,2133,2134],{"class":917},"Completed",[884,2136,908],{"class":894},[884,2138,983],{"class":894},[884,2140,914],{"class":894},[884,2142,2001],{"class":1983},[884,2144,908],{"class":894},[884,2146,911],{"class":894},[884,2148,914],{"class":894},[884,2150,2151],{"class":917},"success",[884,2153,908],{"class":894},[884,2155,1032],{"class":894},[884,2157,2158,2160,2163,2165,2167,2169,2171,2173,2175,2177,2179,2182,2184,2186,2188,2190,2192,2194,2196,2199,2201,2203,2205],{"class":886,"line":1142},[884,2159,1969],{"class":894},[884,2161,2162],{"class":1160},"CANCELLED",[884,2164,908],{"class":894},[884,2166,911],{"class":894},[884,2168,1155],{"class":894},[884,2170,914],{"class":894},[884,2172,1939],{"class":1983},[884,2174,908],{"class":894},[884,2176,911],{"class":894},[884,2178,914],{"class":894},[884,2180,2181],{"class":917},"Cancelled",[884,2183,908],{"class":894},[884,2185,983],{"class":894},[884,2187,914],{"class":894},[884,2189,2001],{"class":1983},[884,2191,908],{"class":894},[884,2193,911],{"class":894},[884,2195,914],{"class":894},[884,2197,2198],{"class":917},"error",[884,2200,908],{"class":894},[884,2202,1227],{"class":894},[884,2204,1227],{"class":894},[884,2206,1764],{"class":894},[884,2208,2209],{"class":886,"line":1232},[884,2210,1843],{"class":894},[827,2212,2214],{"id":2213},"permissions-for-a-role","Permissions for a role",[832,2216,2217],{"icon":834},[780,2218,2219],{},[838,2220,2221],{},"\"Dispatchers see and assign the work orders of their own branch. Technicians see only the orders assigned to them, and can change the status and write the resolution.\"",[842,2223,2224,2244],{},[845,2225,2226,2231,2234],{"icon":847,"label":799},[789,2227],{"caption":2228,"id":2229,"role":2230},"The Work orders kanban signed in as a technician: only the orders assigned to them.","recipe-permissions","Technician",[780,2232,2233],{},"The agent granted each role its actions, its row filter and its fields. A technician signing in sees only their own orders.",[780,2235,2236,2237,2240,2241,825],{},"Roles › Technician › Permissions shows the grants. To see them from the role's side, ask the agent to read as that role: ",[812,2238,2239],{},"query_records"," answers with what the role may see. See ",[784,2242,2243],{"href":558},"Row filters",[845,2245,2246,2457],{"icon":870,"label":803},[875,2247,2249],{"className":877,"code":2248,"language":879,"meta":880,"style":880},"grant_permissions {\n  \"role_ids\": [\"\u003CDispatcher role id>\"],\n  \"grants\": [\n    { \"schema\": \"public\", \"name\": \"work_orders\", \"actions\": [\"READ\", \"CREATE\", \"UPDATE\"], \"effect\": \"ALLOW\",\n      \"where\": { \"branch\": { \"_eq\": \"$USER.branch\" } }, \"fields\": \"all\" }\n  ]\n}\n",[812,2250,2251,2258,2280,2293,2386,2448,2453],{"__ignoreMap":880},[884,2252,2253,2256],{"class":886,"line":887},[884,2254,2255],{"class":890},"grant_permissions ",[884,2257,895],{"class":894},[884,2259,2260,2262,2265,2267,2269,2271,2273,2276,2278],{"class":886,"line":898},[884,2261,901],{"class":894},[884,2263,2264],{"class":904},"role_ids",[884,2266,908],{"class":894},[884,2268,911],{"class":894},[884,2270,1785],{"class":894},[884,2272,908],{"class":894},[884,2274,2275],{"class":917},"\u003CDispatcher role id>",[884,2277,908],{"class":894},[884,2279,1822],{"class":894},[884,2281,2282,2284,2287,2289,2291],{"class":886,"line":926},[884,2283,901],{"class":894},[884,2285,2286],{"class":904},"grants",[884,2288,908],{"class":894},[884,2290,911],{"class":894},[884,2292,958],{"class":894},[884,2294,2295,2297,2299,2301,2303,2305,2307,2309,2311,2313,2315,2317,2319,2321,2323,2325,2327,2329,2331,2334,2336,2338,2340,2342,2345,2347,2349,2351,2354,2356,2358,2360,2363,2365,2368,2370,2373,2375,2377,2379,2382,2384],{"class":886,"line":946},[884,2296,964],{"class":894},[884,2298,914],{"class":894},[884,2300,905],{"class":969},[884,2302,908],{"class":894},[884,2304,911],{"class":894},[884,2306,914],{"class":894},[884,2308,918],{"class":917},[884,2310,908],{"class":894},[884,2312,983],{"class":894},[884,2314,914],{"class":894},[884,2316,931],{"class":969},[884,2318,908],{"class":894},[884,2320,911],{"class":894},[884,2322,914],{"class":894},[884,2324,860],{"class":917},[884,2326,908],{"class":894},[884,2328,983],{"class":894},[884,2330,914],{"class":894},[884,2332,2333],{"class":969},"actions",[884,2335,908],{"class":894},[884,2337,911],{"class":894},[884,2339,1785],{"class":894},[884,2341,908],{"class":894},[884,2343,2344],{"class":917},"READ",[884,2346,908],{"class":894},[884,2348,983],{"class":894},[884,2350,914],{"class":894},[884,2352,2353],{"class":917},"CREATE",[884,2355,908],{"class":894},[884,2357,983],{"class":894},[884,2359,914],{"class":894},[884,2361,2362],{"class":917},"UPDATE",[884,2364,908],{"class":894},[884,2366,2367],{"class":894},"],",[884,2369,914],{"class":894},[884,2371,2372],{"class":969},"effect",[884,2374,908],{"class":894},[884,2376,911],{"class":894},[884,2378,914],{"class":894},[884,2380,2381],{"class":917},"ALLOW",[884,2383,908],{"class":894},[884,2385,923],{"class":894},[884,2387,2388,2390,2393,2395,2397,2399,2401,2403,2405,2407,2409,2411,2414,2416,2418,2420,2423,2425,2427,2430,2432,2435,2437,2439,2441,2444,2446],{"class":886,"line":961},[884,2389,1145],{"class":894},[884,2391,2392],{"class":969},"where",[884,2394,908],{"class":894},[884,2396,911],{"class":894},[884,2398,1155],{"class":894},[884,2400,914],{"class":894},[884,2402,1420],{"class":1160},[884,2404,908],{"class":894},[884,2406,911],{"class":894},[884,2408,1155],{"class":894},[884,2410,914],{"class":894},[884,2412,2413],{"class":1983},"_eq",[884,2415,908],{"class":894},[884,2417,911],{"class":894},[884,2419,914],{"class":894},[884,2421,2422],{"class":917},"$USER.branch",[884,2424,908],{"class":894},[884,2426,1227],{"class":894},[884,2428,2429],{"class":894}," },",[884,2431,914],{"class":894},[884,2433,2434],{"class":969},"fields",[884,2436,908],{"class":894},[884,2438,911],{"class":894},[884,2440,914],{"class":894},[884,2442,2443],{"class":917},"all",[884,2445,908],{"class":894},[884,2447,1764],{"class":894},[884,2449,2450],{"class":886,"line":1035},[884,2451,2452],{"class":894},"  ]\n",[884,2454,2455],{"class":886,"line":1092},[884,2456,1843],{"class":894},[875,2458,2460],{"className":877,"code":2459,"language":879,"meta":880,"style":880},"grant_permissions {\n  \"role_ids\": [\"\u003CTechnician role id>\"],\n  \"grants\": [\n    { \"schema\": \"public\", \"name\": \"work_orders\", \"actions\": [\"READ\"], \"effect\": \"ALLOW\",\n      \"where\": { \"technician.user\": { \"_eq\": \"$USER.id\" } }, \"fields\": \"all\" },\n    { \"schema\": \"public\", \"name\": \"work_orders\", \"actions\": [\"UPDATE\"], \"effect\": \"ALLOW\",\n      \"where\": { \"technician.user\": { \"_eq\": \"$USER.id\" } }, \"fields\": [\"status\", \"resolution\"] }\n  ]\n}\n",[812,2461,2462,2468,2489,2501,2571,2629,2699,2768,2772],{"__ignoreMap":880},[884,2463,2464,2466],{"class":886,"line":887},[884,2465,2255],{"class":890},[884,2467,895],{"class":894},[884,2469,2470,2472,2474,2476,2478,2480,2482,2485,2487],{"class":886,"line":898},[884,2471,901],{"class":894},[884,2473,2264],{"class":904},[884,2475,908],{"class":894},[884,2477,911],{"class":894},[884,2479,1785],{"class":894},[884,2481,908],{"class":894},[884,2483,2484],{"class":917},"\u003CTechnician role id>",[884,2486,908],{"class":894},[884,2488,1822],{"class":894},[884,2490,2491,2493,2495,2497,2499],{"class":886,"line":926},[884,2492,901],{"class":894},[884,2494,2286],{"class":904},[884,2496,908],{"class":894},[884,2498,911],{"class":894},[884,2500,958],{"class":894},[884,2502,2503,2505,2507,2509,2511,2513,2515,2517,2519,2521,2523,2525,2527,2529,2531,2533,2535,2537,2539,2541,2543,2545,2547,2549,2551,2553,2555,2557,2559,2561,2563,2565,2567,2569],{"class":886,"line":946},[884,2504,964],{"class":894},[884,2506,914],{"class":894},[884,2508,905],{"class":969},[884,2510,908],{"class":894},[884,2512,911],{"class":894},[884,2514,914],{"class":894},[884,2516,918],{"class":917},[884,2518,908],{"class":894},[884,2520,983],{"class":894},[884,2522,914],{"class":894},[884,2524,931],{"class":969},[884,2526,908],{"class":894},[884,2528,911],{"class":894},[884,2530,914],{"class":894},[884,2532,860],{"class":917},[884,2534,908],{"class":894},[884,2536,983],{"class":894},[884,2538,914],{"class":894},[884,2540,2333],{"class":969},[884,2542,908],{"class":894},[884,2544,911],{"class":894},[884,2546,1785],{"class":894},[884,2548,908],{"class":894},[884,2550,2344],{"class":917},[884,2552,908],{"class":894},[884,2554,2367],{"class":894},[884,2556,914],{"class":894},[884,2558,2372],{"class":969},[884,2560,908],{"class":894},[884,2562,911],{"class":894},[884,2564,914],{"class":894},[884,2566,2381],{"class":917},[884,2568,908],{"class":894},[884,2570,923],{"class":894},[884,2572,2573,2575,2577,2579,2581,2583,2585,2588,2590,2592,2594,2596,2598,2600,2602,2604,2607,2609,2611,2613,2615,2617,2619,2621,2623,2625,2627],{"class":886,"line":961},[884,2574,1145],{"class":894},[884,2576,2392],{"class":969},[884,2578,908],{"class":894},[884,2580,911],{"class":894},[884,2582,1155],{"class":894},[884,2584,914],{"class":894},[884,2586,2587],{"class":1160},"technician.user",[884,2589,908],{"class":894},[884,2591,911],{"class":894},[884,2593,1155],{"class":894},[884,2595,914],{"class":894},[884,2597,2413],{"class":1983},[884,2599,908],{"class":894},[884,2601,911],{"class":894},[884,2603,914],{"class":894},[884,2605,2606],{"class":917},"$USER.id",[884,2608,908],{"class":894},[884,2610,1227],{"class":894},[884,2612,2429],{"class":894},[884,2614,914],{"class":894},[884,2616,2434],{"class":969},[884,2618,908],{"class":894},[884,2620,911],{"class":894},[884,2622,914],{"class":894},[884,2624,2443],{"class":917},[884,2626,908],{"class":894},[884,2628,1032],{"class":894},[884,2630,2631,2633,2635,2637,2639,2641,2643,2645,2647,2649,2651,2653,2655,2657,2659,2661,2663,2665,2667,2669,2671,2673,2675,2677,2679,2681,2683,2685,2687,2689,2691,2693,2695,2697],{"class":886,"line":1035},[884,2632,964],{"class":894},[884,2634,914],{"class":894},[884,2636,905],{"class":969},[884,2638,908],{"class":894},[884,2640,911],{"class":894},[884,2642,914],{"class":894},[884,2644,918],{"class":917},[884,2646,908],{"class":894},[884,2648,983],{"class":894},[884,2650,914],{"class":894},[884,2652,931],{"class":969},[884,2654,908],{"class":894},[884,2656,911],{"class":894},[884,2658,914],{"class":894},[884,2660,860],{"class":917},[884,2662,908],{"class":894},[884,2664,983],{"class":894},[884,2666,914],{"class":894},[884,2668,2333],{"class":969},[884,2670,908],{"class":894},[884,2672,911],{"class":894},[884,2674,1785],{"class":894},[884,2676,908],{"class":894},[884,2678,2362],{"class":917},[884,2680,908],{"class":894},[884,2682,2367],{"class":894},[884,2684,914],{"class":894},[884,2686,2372],{"class":969},[884,2688,908],{"class":894},[884,2690,911],{"class":894},[884,2692,914],{"class":894},[884,2694,2381],{"class":917},[884,2696,908],{"class":894},[884,2698,923],{"class":894},[884,2700,2701,2703,2705,2707,2709,2711,2713,2715,2717,2719,2721,2723,2725,2727,2729,2731,2733,2735,2737,2739,2741,2743,2745,2747,2749,2751,2753,2755,2757,2759,2761,2763,2766],{"class":886,"line":1092},[884,2702,1145],{"class":894},[884,2704,2392],{"class":969},[884,2706,908],{"class":894},[884,2708,911],{"class":894},[884,2710,1155],{"class":894},[884,2712,914],{"class":894},[884,2714,2587],{"class":1160},[884,2716,908],{"class":894},[884,2718,911],{"class":894},[884,2720,1155],{"class":894},[884,2722,914],{"class":894},[884,2724,2413],{"class":1983},[884,2726,908],{"class":894},[884,2728,911],{"class":894},[884,2730,914],{"class":894},[884,2732,2606],{"class":917},[884,2734,908],{"class":894},[884,2736,1227],{"class":894},[884,2738,2429],{"class":894},[884,2740,914],{"class":894},[884,2742,2434],{"class":969},[884,2744,908],{"class":894},[884,2746,911],{"class":894},[884,2748,1785],{"class":894},[884,2750,908],{"class":894},[884,2752,1335],{"class":917},[884,2754,908],{"class":894},[884,2756,983],{"class":894},[884,2758,914],{"class":894},[884,2760,1702],{"class":917},[884,2762,908],{"class":894},[884,2764,2765],{"class":894},"]",[884,2767,1764],{"class":894},[884,2769,2770],{"class":886,"line":1142},[884,2771,2452],{"class":894},[884,2773,2774],{"class":886,"line":1232},[884,2775,1843],{"class":894},[827,2777,2779],{"id":2778},"a-dataview","A DataView",[832,2781,2782],{"icon":834},[780,2783,2784],{},[838,2785,2786],{},"\"Make a kanban of work orders by status for dispatchers, titled by the order number, and put it in the App.\"",[842,2788,2789,2806],{},[845,2790,2791,2795,2801],{"icon":847,"label":799},[789,2792],{"caption":2793,"id":2794},"The Work orders kanban in the App: a lane per status, each card titled by its number.","recipe-dataview",[780,2796,2797,2798,2800],{},"The agent created the kanban over ",[812,2799,860],{}," and published it to Dispatchers and Managers. It's in their App menu.",[780,2802,2803,2804,825],{},"DataViews › Work orders; open it in the App, or sign in as a dispatcher. See ",[784,2805,144],{"href":145},[845,2807,2808,3059,3134],{"icon":870,"label":803},[875,2809,2811],{"className":877,"code":2810,"language":879,"meta":880,"style":880},"create_dataview {\n  \"name\": \"Work orders\",\n  \"view_type\": \"KANBAN\",\n  \"schema\": \"public\",\n  \"table\": \"work_orders\",\n  \"columns\": [\"number\", \"priority\", \"status\", \"site\", \"technician\", \"description\"],\n  \"icon\": \"i-lucide-columns-3\",\n  \"view_config\": { \"kanban_layout\": { \"groupColumn\": \"status\", \"titleFormula\": \"{{number}}\", \"descriptionFormula\": \"{{description}}\" } }\n}\n",[812,2812,2813,2820,2839,2859,2877,2896,2956,2976,3055],{"__ignoreMap":880},[884,2814,2815,2818],{"class":886,"line":887},[884,2816,2817],{"class":890},"create_dataview ",[884,2819,895],{"class":894},[884,2821,2822,2824,2826,2828,2830,2832,2835,2837],{"class":886,"line":898},[884,2823,901],{"class":894},[884,2825,931],{"class":904},[884,2827,908],{"class":894},[884,2829,911],{"class":894},[884,2831,914],{"class":894},[884,2833,2834],{"class":917},"Work orders",[884,2836,908],{"class":894},[884,2838,923],{"class":894},[884,2840,2841,2843,2846,2848,2850,2852,2855,2857],{"class":886,"line":926},[884,2842,901],{"class":894},[884,2844,2845],{"class":904},"view_type",[884,2847,908],{"class":894},[884,2849,911],{"class":894},[884,2851,914],{"class":894},[884,2853,2854],{"class":917},"KANBAN",[884,2856,908],{"class":894},[884,2858,923],{"class":894},[884,2860,2861,2863,2865,2867,2869,2871,2873,2875],{"class":886,"line":946},[884,2862,901],{"class":894},[884,2864,905],{"class":904},[884,2866,908],{"class":894},[884,2868,911],{"class":894},[884,2870,914],{"class":894},[884,2872,918],{"class":917},[884,2874,908],{"class":894},[884,2876,923],{"class":894},[884,2878,2879,2881,2884,2886,2888,2890,2892,2894],{"class":886,"line":961},[884,2880,901],{"class":894},[884,2882,2883],{"class":904},"table",[884,2885,908],{"class":894},[884,2887,911],{"class":894},[884,2889,914],{"class":894},[884,2891,860],{"class":917},[884,2893,908],{"class":894},[884,2895,923],{"class":894},[884,2897,2898,2900,2902,2904,2906,2908,2910,2912,2914,2916,2918,2920,2922,2924,2926,2928,2930,2932,2934,2936,2938,2940,2942,2944,2946,2948,2950,2952,2954],{"class":886,"line":1035},[884,2899,901],{"class":894},[884,2901,951],{"class":904},[884,2903,908],{"class":894},[884,2905,911],{"class":894},[884,2907,1785],{"class":894},[884,2909,908],{"class":894},[884,2911,1050],{"class":917},[884,2913,908],{"class":894},[884,2915,983],{"class":894},[884,2917,914],{"class":894},[884,2919,1247],{"class":917},[884,2921,908],{"class":894},[884,2923,983],{"class":894},[884,2925,914],{"class":894},[884,2927,1335],{"class":917},[884,2929,908],{"class":894},[884,2931,983],{"class":894},[884,2933,914],{"class":894},[884,2935,1107],{"class":917},[884,2937,908],{"class":894},[884,2939,983],{"class":894},[884,2941,914],{"class":894},[884,2943,1532],{"class":917},[884,2945,908],{"class":894},[884,2947,983],{"class":894},[884,2949,914],{"class":894},[884,2951,1651],{"class":917},[884,2953,908],{"class":894},[884,2955,1822],{"class":894},[884,2957,2958,2960,2963,2965,2967,2969,2972,2974],{"class":886,"line":1092},[884,2959,901],{"class":894},[884,2961,2962],{"class":904},"icon",[884,2964,908],{"class":894},[884,2966,911],{"class":894},[884,2968,914],{"class":894},[884,2970,2971],{"class":917},"i-lucide-columns-3",[884,2973,908],{"class":894},[884,2975,923],{"class":894},[884,2977,2978,2980,2983,2985,2987,2989,2991,2994,2996,2998,3000,3002,3005,3007,3009,3011,3013,3015,3017,3019,3022,3024,3026,3028,3031,3033,3035,3037,3040,3042,3044,3046,3049,3051,3053],{"class":886,"line":1142},[884,2979,901],{"class":894},[884,2981,2982],{"class":904},"view_config",[884,2984,908],{"class":894},[884,2986,911],{"class":894},[884,2988,1155],{"class":894},[884,2990,914],{"class":894},[884,2992,2993],{"class":969},"kanban_layout",[884,2995,908],{"class":894},[884,2997,911],{"class":894},[884,2999,1155],{"class":894},[884,3001,914],{"class":894},[884,3003,3004],{"class":1160},"groupColumn",[884,3006,908],{"class":894},[884,3008,911],{"class":894},[884,3010,914],{"class":894},[884,3012,1335],{"class":917},[884,3014,908],{"class":894},[884,3016,983],{"class":894},[884,3018,914],{"class":894},[884,3020,3021],{"class":1160},"titleFormula",[884,3023,908],{"class":894},[884,3025,911],{"class":894},[884,3027,914],{"class":894},[884,3029,3030],{"class":917},"{{number}}",[884,3032,908],{"class":894},[884,3034,983],{"class":894},[884,3036,914],{"class":894},[884,3038,3039],{"class":1160},"descriptionFormula",[884,3041,908],{"class":894},[884,3043,911],{"class":894},[884,3045,914],{"class":894},[884,3047,3048],{"class":917},"{{description}}",[884,3050,908],{"class":894},[884,3052,1227],{"class":894},[884,3054,1764],{"class":894},[884,3056,3057],{"class":886,"line":1232},[884,3058,1843],{"class":894},[875,3060,3062],{"className":877,"code":3061,"language":879,"meta":880,"style":880},"publish_dataview { \"id\": \"\u003Cthe new DataView's id>\", \"role_ids\": [\"\u003CDispatcher role id>\", \"\u003CManager role id>\"], \"note\": \"First version\" }\n",[812,3063,3064],{"__ignoreMap":880},[884,3065,3066,3069,3072,3074,3076,3078,3080,3082,3085,3087,3089,3091,3093,3095,3097,3099,3101,3103,3105,3107,3109,3112,3114,3116,3118,3121,3123,3125,3127,3130,3132],{"class":886,"line":887},[884,3067,3068],{"class":890},"publish_dataview ",[884,3070,3071],{"class":894},"{",[884,3073,914],{"class":894},[884,3075,978],{"class":904},[884,3077,908],{"class":894},[884,3079,911],{"class":894},[884,3081,914],{"class":894},[884,3083,3084],{"class":917},"\u003Cthe new DataView's id>",[884,3086,908],{"class":894},[884,3088,983],{"class":894},[884,3090,914],{"class":894},[884,3092,2264],{"class":904},[884,3094,908],{"class":894},[884,3096,911],{"class":894},[884,3098,1785],{"class":894},[884,3100,908],{"class":894},[884,3102,2275],{"class":917},[884,3104,908],{"class":894},[884,3106,983],{"class":894},[884,3108,914],{"class":894},[884,3110,3111],{"class":917},"\u003CManager role id>",[884,3113,908],{"class":894},[884,3115,2367],{"class":894},[884,3117,914],{"class":894},[884,3119,3120],{"class":904},"note",[884,3122,908],{"class":894},[884,3124,911],{"class":894},[884,3126,914],{"class":894},[884,3128,3129],{"class":917},"First version",[884,3131,908],{"class":894},[884,3133,1764],{"class":894},[780,3135,3136],{},"The DataView is created as a draft; publishing makes it reach the roles listed, and places it in the App menu.",[827,3138,3140],{"id":3139},"a-dashboard","A dashboard",[832,3142,3143],{"icon":834},[780,3144,3145],{},[838,3146,3147],{},"\"Build an Operations dashboard: open orders as a number, open orders by status as bars. Give it to managers.\"",[842,3149,3150,3159],{},[845,3151,3152,3156],{"icon":847,"label":799},[789,3153],{"caption":3154,"id":3155},"The Operations dashboard in the App: open orders as a number and by status as bars.","recipe-dashboard",[780,3157,3158],{},"The agent created the dashboard, wrote and tried each widget's query, and published it to Managers.",[845,3160,3161,3206,3365,3513,3561],{"icon":870,"label":803},[875,3162,3164],{"className":877,"code":3163,"language":879,"meta":880,"style":880},"create_dashboard { \"name\": \"Operations\", \"icon\": \"i-lucide-chart-column\" }\n",[812,3165,3166],{"__ignoreMap":880},[884,3167,3168,3171,3173,3175,3177,3179,3181,3183,3185,3187,3189,3191,3193,3195,3197,3199,3202,3204],{"class":886,"line":887},[884,3169,3170],{"class":890},"create_dashboard ",[884,3172,3071],{"class":894},[884,3174,914],{"class":894},[884,3176,931],{"class":904},[884,3178,908],{"class":894},[884,3180,911],{"class":894},[884,3182,914],{"class":894},[884,3184,722],{"class":917},[884,3186,908],{"class":894},[884,3188,983],{"class":894},[884,3190,914],{"class":894},[884,3192,2962],{"class":904},[884,3194,908],{"class":894},[884,3196,911],{"class":894},[884,3198,914],{"class":894},[884,3200,3201],{"class":917},"i-lucide-chart-column",[884,3203,908],{"class":894},[884,3205,1764],{"class":894},[875,3207,3209],{"className":877,"code":3208,"language":879,"meta":880,"style":880},"save_widget {\n  \"dashboard_id\": \"\u003Cthe dashboard's id>\", \"type\": \"KPI\", \"label\": \"Open orders\",\n  \"query\": \"SELECT count(*) AS open FROM work_orders WHERE status NOT IN ('COMPLETED','CANCELLED')\",\n  \"grid\": { \"x\": 0, \"y\": 0, \"w\": 3, \"h\": 2 }\n}\n",[812,3210,3211,3218,3273,3293,3361],{"__ignoreMap":880},[884,3212,3213,3216],{"class":886,"line":887},[884,3214,3215],{"class":890},"save_widget ",[884,3217,895],{"class":894},[884,3219,3220,3222,3225,3227,3229,3231,3234,3236,3238,3240,3243,3245,3247,3249,3252,3254,3256,3258,3260,3262,3264,3266,3269,3271],{"class":886,"line":898},[884,3221,901],{"class":894},[884,3223,3224],{"class":904},"dashboard_id",[884,3226,908],{"class":894},[884,3228,911],{"class":894},[884,3230,914],{"class":894},[884,3232,3233],{"class":917},"\u003Cthe dashboard's id>",[884,3235,908],{"class":894},[884,3237,983],{"class":894},[884,3239,914],{"class":894},[884,3241,3242],{"class":904},"type",[884,3244,908],{"class":894},[884,3246,911],{"class":894},[884,3248,914],{"class":894},[884,3250,3251],{"class":917},"KPI",[884,3253,908],{"class":894},[884,3255,983],{"class":894},[884,3257,914],{"class":894},[884,3259,1939],{"class":904},[884,3261,908],{"class":894},[884,3263,911],{"class":894},[884,3265,914],{"class":894},[884,3267,3268],{"class":917},"Open orders",[884,3270,908],{"class":894},[884,3272,923],{"class":894},[884,3274,3275,3277,3280,3282,3284,3286,3289,3291],{"class":886,"line":926},[884,3276,901],{"class":894},[884,3278,3279],{"class":904},"query",[884,3281,908],{"class":894},[884,3283,911],{"class":894},[884,3285,914],{"class":894},[884,3287,3288],{"class":917},"SELECT count(*) AS open FROM work_orders WHERE status NOT IN ('COMPLETED','CANCELLED')",[884,3290,908],{"class":894},[884,3292,923],{"class":894},[884,3294,3295,3297,3300,3302,3304,3306,3308,3311,3313,3315,3318,3320,3322,3325,3327,3329,3331,3333,3335,3338,3340,3342,3345,3347,3349,3352,3354,3356,3359],{"class":886,"line":946},[884,3296,901],{"class":894},[884,3298,3299],{"class":904},"grid",[884,3301,908],{"class":894},[884,3303,911],{"class":894},[884,3305,1155],{"class":894},[884,3307,914],{"class":894},[884,3309,3310],{"class":969},"x",[884,3312,908],{"class":894},[884,3314,911],{"class":894},[884,3316,3317],{"class":1160}," 0",[884,3319,983],{"class":894},[884,3321,914],{"class":894},[884,3323,3324],{"class":969},"y",[884,3326,908],{"class":894},[884,3328,911],{"class":894},[884,3330,3317],{"class":1160},[884,3332,983],{"class":894},[884,3334,914],{"class":894},[884,3336,3337],{"class":969},"w",[884,3339,908],{"class":894},[884,3341,911],{"class":894},[884,3343,3344],{"class":1160}," 3",[884,3346,983],{"class":894},[884,3348,914],{"class":894},[884,3350,3351],{"class":969},"h",[884,3353,908],{"class":894},[884,3355,911],{"class":894},[884,3357,3358],{"class":1160}," 2",[884,3360,1764],{"class":894},[884,3362,3363],{"class":886,"line":961},[884,3364,1843],{"class":894},[875,3366,3368],{"className":877,"code":3367,"language":879,"meta":880,"style":880},"save_widget {\n  \"dashboard_id\": \"\u003Cthe dashboard's id>\", \"type\": \"BAR\", \"label\": \"Open orders by status\",\n  \"query\": \"SELECT status, count(*) AS orders FROM work_orders WHERE status NOT IN ('COMPLETED','CANCELLED') GROUP BY status\",\n  \"grid\": { \"x\": 3, \"y\": 0, \"w\": 9, \"h\": 4 }\n}\n",[812,3369,3370,3376,3428,3447,3509],{"__ignoreMap":880},[884,3371,3372,3374],{"class":886,"line":887},[884,3373,3215],{"class":890},[884,3375,895],{"class":894},[884,3377,3378,3380,3382,3384,3386,3388,3390,3392,3394,3396,3398,3400,3402,3404,3407,3409,3411,3413,3415,3417,3419,3421,3424,3426],{"class":886,"line":898},[884,3379,901],{"class":894},[884,3381,3224],{"class":904},[884,3383,908],{"class":894},[884,3385,911],{"class":894},[884,3387,914],{"class":894},[884,3389,3233],{"class":917},[884,3391,908],{"class":894},[884,3393,983],{"class":894},[884,3395,914],{"class":894},[884,3397,3242],{"class":904},[884,3399,908],{"class":894},[884,3401,911],{"class":894},[884,3403,914],{"class":894},[884,3405,3406],{"class":917},"BAR",[884,3408,908],{"class":894},[884,3410,983],{"class":894},[884,3412,914],{"class":894},[884,3414,1939],{"class":904},[884,3416,908],{"class":894},[884,3418,911],{"class":894},[884,3420,914],{"class":894},[884,3422,3423],{"class":917},"Open orders by status",[884,3425,908],{"class":894},[884,3427,923],{"class":894},[884,3429,3430,3432,3434,3436,3438,3440,3443,3445],{"class":886,"line":926},[884,3431,901],{"class":894},[884,3433,3279],{"class":904},[884,3435,908],{"class":894},[884,3437,911],{"class":894},[884,3439,914],{"class":894},[884,3441,3442],{"class":917},"SELECT status, count(*) AS orders FROM work_orders WHERE status NOT IN ('COMPLETED','CANCELLED') GROUP BY status",[884,3444,908],{"class":894},[884,3446,923],{"class":894},[884,3448,3449,3451,3453,3455,3457,3459,3461,3463,3465,3467,3469,3471,3473,3475,3477,3479,3481,3483,3485,3487,3489,3491,3494,3496,3498,3500,3502,3504,3507],{"class":886,"line":946},[884,3450,901],{"class":894},[884,3452,3299],{"class":904},[884,3454,908],{"class":894},[884,3456,911],{"class":894},[884,3458,1155],{"class":894},[884,3460,914],{"class":894},[884,3462,3310],{"class":969},[884,3464,908],{"class":894},[884,3466,911],{"class":894},[884,3468,3344],{"class":1160},[884,3470,983],{"class":894},[884,3472,914],{"class":894},[884,3474,3324],{"class":969},[884,3476,908],{"class":894},[884,3478,911],{"class":894},[884,3480,3317],{"class":1160},[884,3482,983],{"class":894},[884,3484,914],{"class":894},[884,3486,3337],{"class":969},[884,3488,908],{"class":894},[884,3490,911],{"class":894},[884,3492,3493],{"class":1160}," 9",[884,3495,983],{"class":894},[884,3497,914],{"class":894},[884,3499,3351],{"class":969},[884,3501,908],{"class":894},[884,3503,911],{"class":894},[884,3505,3506],{"class":1160}," 4",[884,3508,1764],{"class":894},[884,3510,3511],{"class":886,"line":961},[884,3512,1843],{"class":894},[875,3514,3516],{"className":877,"code":3515,"language":879,"meta":880,"style":880},"publish_dashboard { \"id\": \"\u003Cthe dashboard's id>\", \"role_ids\": [\"\u003CManager role id>\"] }\n",[812,3517,3518],{"__ignoreMap":880},[884,3519,3520,3523,3525,3527,3529,3531,3533,3535,3537,3539,3541,3543,3545,3547,3549,3551,3553,3555,3557,3559],{"class":886,"line":887},[884,3521,3522],{"class":890},"publish_dashboard ",[884,3524,3071],{"class":894},[884,3526,914],{"class":894},[884,3528,978],{"class":904},[884,3530,908],{"class":894},[884,3532,911],{"class":894},[884,3534,914],{"class":894},[884,3536,3233],{"class":917},[884,3538,908],{"class":894},[884,3540,983],{"class":894},[884,3542,914],{"class":894},[884,3544,2264],{"class":904},[884,3546,908],{"class":894},[884,3548,911],{"class":894},[884,3550,1785],{"class":894},[884,3552,908],{"class":894},[884,3554,3111],{"class":917},[884,3556,908],{"class":894},[884,3558,2765],{"class":894},[884,3560,1764],{"class":894},[780,3562,3563,3564,3567,3568,3571],{},"Before saving a widget, the agent can try its query with ",[812,3565,3566],{},"preview_query",", and ",[812,3569,3570],{},"suggest_dashboard"," proposes a whole dashboard from a table.",[2104,3573,3574],{},[780,3575,3576,3577,3579,3580,825],{},"A dashboard's queries run with its author's authority, not the viewer's permissions. Tell the agent who it's for: \"only their branch's orders\" makes it filter with ",[812,3578,2422],{}," in the SQL. See ",[784,3581,78],{"href":275},[827,3583,3585],{"id":3584},"a-workflow","A workflow",[832,3587,3588],{"icon":834},[780,3589,3590],{},[838,3591,3592],{},"\"When a work order is completed, email the dispatch office its resolution.\"",[842,3594,3595,3613],{},[845,3596,3597,3601,3605,3608],{"icon":847,"label":799},[789,3598],{"caption":3599,"id":3600},"Settings › Runs of Order completed: the test run, step by step.","recipe-workflow-run",[789,3602],{"caption":3603,"id":3604},"The email the dispatch office received.","recipe-workflow-email",[780,3606,3607],{},"The agent created the workflow, tried it on a real order with a test run, then published and enabled it.",[780,3609,3610,3611,825],{},"Workflows › Order completed › Settings › Runs shows the test run, step by step. See ",[784,3612,356],{"href":362},[845,3614,3615,3799,4170,4182],{"icon":870,"label":803},[875,3616,3618],{"className":877,"code":3617,"language":879,"meta":880,"style":880},"create_workflow {\n  \"name\": \"Order completed\",\n  \"start\": { \"trigger\": \"DATA_EVENT\", \"resource\": \"\u003Cwork_orders resource id>\", \"events\": [\"UPDATE\"],\n             \"filter\": { \"status\": { \"_eq\": \"COMPLETED\" } }, \"changed_fields\": [\"status\"],\n             \"execute_as\": \"\u003CWorkflows user id>\" }\n}\n",[812,3619,3620,3627,3646,3714,3775,3795],{"__ignoreMap":880},[884,3621,3622,3625],{"class":886,"line":887},[884,3623,3624],{"class":890},"create_workflow ",[884,3626,895],{"class":894},[884,3628,3629,3631,3633,3635,3637,3639,3642,3644],{"class":886,"line":898},[884,3630,901],{"class":894},[884,3632,931],{"class":904},[884,3634,908],{"class":894},[884,3636,911],{"class":894},[884,3638,914],{"class":894},[884,3640,3641],{"class":917},"Order completed",[884,3643,908],{"class":894},[884,3645,923],{"class":894},[884,3647,3648,3650,3653,3655,3657,3659,3661,3664,3666,3668,3670,3673,3675,3677,3679,3682,3684,3686,3688,3691,3693,3695,3697,3700,3702,3704,3706,3708,3710,3712],{"class":886,"line":926},[884,3649,901],{"class":894},[884,3651,3652],{"class":904},"start",[884,3654,908],{"class":894},[884,3656,911],{"class":894},[884,3658,1155],{"class":894},[884,3660,914],{"class":894},[884,3662,3663],{"class":969},"trigger",[884,3665,908],{"class":894},[884,3667,911],{"class":894},[884,3669,914],{"class":894},[884,3671,3672],{"class":917},"DATA_EVENT",[884,3674,908],{"class":894},[884,3676,983],{"class":894},[884,3678,914],{"class":894},[884,3680,3681],{"class":969},"resource",[884,3683,908],{"class":894},[884,3685,911],{"class":894},[884,3687,914],{"class":894},[884,3689,3690],{"class":917},"\u003Cwork_orders resource id>",[884,3692,908],{"class":894},[884,3694,983],{"class":894},[884,3696,914],{"class":894},[884,3698,3699],{"class":969},"events",[884,3701,908],{"class":894},[884,3703,911],{"class":894},[884,3705,1785],{"class":894},[884,3707,908],{"class":894},[884,3709,2362],{"class":917},[884,3711,908],{"class":894},[884,3713,1822],{"class":894},[884,3715,3716,3719,3722,3724,3726,3728,3730,3732,3734,3736,3738,3740,3742,3744,3746,3748,3750,3752,3754,3756,3758,3761,3763,3765,3767,3769,3771,3773],{"class":886,"line":946},[884,3717,3718],{"class":894},"             \"",[884,3720,3721],{"class":969},"filter",[884,3723,908],{"class":894},[884,3725,911],{"class":894},[884,3727,1155],{"class":894},[884,3729,914],{"class":894},[884,3731,1335],{"class":1160},[884,3733,908],{"class":894},[884,3735,911],{"class":894},[884,3737,1155],{"class":894},[884,3739,914],{"class":894},[884,3741,2413],{"class":1983},[884,3743,908],{"class":894},[884,3745,911],{"class":894},[884,3747,914],{"class":894},[884,3749,2115],{"class":917},[884,3751,908],{"class":894},[884,3753,1227],{"class":894},[884,3755,2429],{"class":894},[884,3757,914],{"class":894},[884,3759,3760],{"class":969},"changed_fields",[884,3762,908],{"class":894},[884,3764,911],{"class":894},[884,3766,1785],{"class":894},[884,3768,908],{"class":894},[884,3770,1335],{"class":917},[884,3772,908],{"class":894},[884,3774,1822],{"class":894},[884,3776,3777,3779,3782,3784,3786,3788,3791,3793],{"class":886,"line":961},[884,3778,3718],{"class":894},[884,3780,3781],{"class":969},"execute_as",[884,3783,908],{"class":894},[884,3785,911],{"class":894},[884,3787,914],{"class":894},[884,3789,3790],{"class":917},"\u003CWorkflows user id>",[884,3792,908],{"class":894},[884,3794,1764],{"class":894},[884,3796,3797],{"class":886,"line":1035},[884,3798,1843],{"class":894},[875,3800,3802],{"className":877,"code":3801,"language":879,"meta":880,"style":880},"save_workflow {\n  \"id\": \"\u003Cthe workflow's id>\", \"revision\": \"\u003Cits revision>\",\n  \"operations\": [\n    { \"id\": \"\u003CStart's id>\", \"type\": \"totalbase.start\", \"key\": \"start\", \"configuration\": { \"trigger\": \"DATA_EVENT\", \"...\": \"kept as get_workflow returns it\" } },\n    { \"type\": \"totalbase.send-email\", \"key\": \"email\",\n      \"configuration\": { \"to\": \"dispatch@acme-field.example\", \"subject\": \"Work order {{start.data.number}} completed\",\n                         \"bodyType\": \"text\", \"textBody\": \"Resolution: {{start.data.resolution}}\" } }\n  ],\n  \"connections\": [\n    { \"source\": \"start\", \"output\": \"next\", \"target\": \"email\" }\n  ]\n}\n",[812,3803,3804,3811,3848,3861,3963,4001,4049,4089,4093,4106,4162,4166],{"__ignoreMap":880},[884,3805,3806,3809],{"class":886,"line":887},[884,3807,3808],{"class":890},"save_workflow ",[884,3810,895],{"class":894},[884,3812,3813,3815,3817,3819,3821,3823,3826,3828,3830,3832,3835,3837,3839,3841,3844,3846],{"class":886,"line":898},[884,3814,901],{"class":894},[884,3816,978],{"class":904},[884,3818,908],{"class":894},[884,3820,911],{"class":894},[884,3822,914],{"class":894},[884,3824,3825],{"class":917},"\u003Cthe workflow's id>",[884,3827,908],{"class":894},[884,3829,983],{"class":894},[884,3831,914],{"class":894},[884,3833,3834],{"class":904},"revision",[884,3836,908],{"class":894},[884,3838,911],{"class":894},[884,3840,914],{"class":894},[884,3842,3843],{"class":917},"\u003Cits revision>",[884,3845,908],{"class":894},[884,3847,923],{"class":894},[884,3849,3850,3852,3855,3857,3859],{"class":886,"line":926},[884,3851,901],{"class":894},[884,3853,3854],{"class":904},"operations",[884,3856,908],{"class":894},[884,3858,911],{"class":894},[884,3860,958],{"class":894},[884,3862,3863,3865,3867,3869,3871,3873,3875,3878,3880,3882,3884,3886,3888,3890,3892,3895,3897,3899,3901,3904,3906,3908,3910,3912,3914,3916,3918,3921,3923,3925,3927,3929,3931,3933,3935,3937,3939,3941,3943,3945,3948,3950,3952,3954,3957,3959,3961],{"class":886,"line":946},[884,3864,964],{"class":894},[884,3866,914],{"class":894},[884,3868,978],{"class":969},[884,3870,908],{"class":894},[884,3872,911],{"class":894},[884,3874,914],{"class":894},[884,3876,3877],{"class":917},"\u003CStart's id>",[884,3879,908],{"class":894},[884,3881,983],{"class":894},[884,3883,914],{"class":894},[884,3885,3242],{"class":969},[884,3887,908],{"class":894},[884,3889,911],{"class":894},[884,3891,914],{"class":894},[884,3893,3894],{"class":917},"totalbase.start",[884,3896,908],{"class":894},[884,3898,983],{"class":894},[884,3900,914],{"class":894},[884,3902,3903],{"class":969},"key",[884,3905,908],{"class":894},[884,3907,911],{"class":894},[884,3909,914],{"class":894},[884,3911,3652],{"class":917},[884,3913,908],{"class":894},[884,3915,983],{"class":894},[884,3917,914],{"class":894},[884,3919,3920],{"class":969},"configuration",[884,3922,908],{"class":894},[884,3924,911],{"class":894},[884,3926,1155],{"class":894},[884,3928,914],{"class":894},[884,3930,3663],{"class":1160},[884,3932,908],{"class":894},[884,3934,911],{"class":894},[884,3936,914],{"class":894},[884,3938,3672],{"class":917},[884,3940,908],{"class":894},[884,3942,983],{"class":894},[884,3944,914],{"class":894},[884,3946,3947],{"class":1160},"...",[884,3949,908],{"class":894},[884,3951,911],{"class":894},[884,3953,914],{"class":894},[884,3955,3956],{"class":917},"kept as get_workflow returns it",[884,3958,908],{"class":894},[884,3960,1227],{"class":894},[884,3962,1032],{"class":894},[884,3964,3965,3967,3969,3971,3973,3975,3977,3980,3982,3984,3986,3988,3990,3992,3994,3997,3999],{"class":886,"line":961},[884,3966,964],{"class":894},[884,3968,914],{"class":894},[884,3970,3242],{"class":969},[884,3972,908],{"class":894},[884,3974,911],{"class":894},[884,3976,914],{"class":894},[884,3978,3979],{"class":917},"totalbase.send-email",[884,3981,908],{"class":894},[884,3983,983],{"class":894},[884,3985,914],{"class":894},[884,3987,3903],{"class":969},[884,3989,908],{"class":894},[884,3991,911],{"class":894},[884,3993,914],{"class":894},[884,3995,3996],{"class":917},"email",[884,3998,908],{"class":894},[884,4000,923],{"class":894},[884,4002,4003,4005,4007,4009,4011,4013,4015,4018,4020,4022,4024,4027,4029,4031,4033,4036,4038,4040,4042,4045,4047],{"class":886,"line":1035},[884,4004,1145],{"class":894},[884,4006,3920],{"class":969},[884,4008,908],{"class":894},[884,4010,911],{"class":894},[884,4012,1155],{"class":894},[884,4014,914],{"class":894},[884,4016,4017],{"class":1160},"to",[884,4019,908],{"class":894},[884,4021,911],{"class":894},[884,4023,914],{"class":894},[884,4025,4026],{"class":917},"dispatch@acme-field.example",[884,4028,908],{"class":894},[884,4030,983],{"class":894},[884,4032,914],{"class":894},[884,4034,4035],{"class":1160},"subject",[884,4037,908],{"class":894},[884,4039,911],{"class":894},[884,4041,914],{"class":894},[884,4043,4044],{"class":917},"Work order {{start.data.number}} completed",[884,4046,908],{"class":894},[884,4048,923],{"class":894},[884,4050,4051,4054,4057,4059,4061,4063,4065,4067,4069,4071,4074,4076,4078,4080,4083,4085,4087],{"class":886,"line":1092},[884,4052,4053],{"class":894},"                         \"",[884,4055,4056],{"class":1160},"bodyType",[884,4058,908],{"class":894},[884,4060,911],{"class":894},[884,4062,914],{"class":894},[884,4064,1264],{"class":917},[884,4066,908],{"class":894},[884,4068,983],{"class":894},[884,4070,914],{"class":894},[884,4072,4073],{"class":1160},"textBody",[884,4075,908],{"class":894},[884,4077,911],{"class":894},[884,4079,914],{"class":894},[884,4081,4082],{"class":917},"Resolution: {{start.data.resolution}}",[884,4084,908],{"class":894},[884,4086,1227],{"class":894},[884,4088,1764],{"class":894},[884,4090,4091],{"class":886,"line":1142},[884,4092,1770],{"class":894},[884,4094,4095,4097,4100,4102,4104],{"class":886,"line":1232},[884,4096,901],{"class":894},[884,4098,4099],{"class":904},"connections",[884,4101,908],{"class":894},[884,4103,911],{"class":894},[884,4105,958],{"class":894},[884,4107,4108,4110,4112,4115,4117,4119,4121,4123,4125,4127,4129,4132,4134,4136,4138,4141,4143,4145,4147,4150,4152,4154,4156,4158,4160],{"class":886,"line":1299},[884,4109,964],{"class":894},[884,4111,914],{"class":894},[884,4113,4114],{"class":969},"source",[884,4116,908],{"class":894},[884,4118,911],{"class":894},[884,4120,914],{"class":894},[884,4122,3652],{"class":917},[884,4124,908],{"class":894},[884,4126,983],{"class":894},[884,4128,914],{"class":894},[884,4130,4131],{"class":969},"output",[884,4133,908],{"class":894},[884,4135,911],{"class":894},[884,4137,914],{"class":894},[884,4139,4140],{"class":917},"next",[884,4142,908],{"class":894},[884,4144,983],{"class":894},[884,4146,914],{"class":894},[884,4148,4149],{"class":969},"target",[884,4151,908],{"class":894},[884,4153,911],{"class":894},[884,4155,914],{"class":894},[884,4157,3996],{"class":917},[884,4159,908],{"class":894},[884,4161,1764],{"class":894},[884,4163,4164],{"class":886,"line":1320},[884,4165,2452],{"class":894},[884,4167,4168],{"class":886,"line":1385},[884,4169,1843],{"class":894},[780,4171,4172,4175,4176,4179,4180,825],{},[812,4173,4174],{},"{{start.data}}"," is the order that was updated. The agent first reads the workflow with ",[812,4177,4178],{},"get_workflow",", to keep the Start step and pass its ",[812,4181,3834],{},[780,4183,4184,4185,4188,4189,4192,4193,4188,4196,825],{},"Then a test run on a real order (",[812,4186,4187],{},"run_workflow"," with ",[812,4190,4191],{},"\"mode\": \"test\"","), and ",[812,4194,4195],{},"publish_workflow",[812,4197,4198],{},"\"enabled\": true",[827,4200,4202],{"id":4201},"the-app-menu","The App menu",[832,4204,4205],{"icon":834},[780,4206,4207],{},[838,4208,4209],{},"\"Group the App menu: Operations with the kanban and the dashboard, Fleet with the fleet map.\"",[842,4211,4212,4227],{},[845,4213,4214,4219,4222],{"icon":847,"label":799},[789,4215],{"caption":4216,"id":4217,"role":4218},"The App as a dispatcher: Operations and Fleet groups, with only what they may open.","recipe-app-menu","Dispatcher",[780,4220,4221],{},"The agent arranged the menu in groups. Each user sees only the entries they may open.",[780,4223,4224,4225,825],{},"the App, as a dispatcher and as a manager: each sees only the entries they may open. See ",[784,4226,70],{"href":71},[845,4228,4229],{"icon":870,"label":803},[875,4230,4232],{"className":877,"code":4231,"language":879,"meta":880,"style":880},"set_app_menu {\n  \"nodes\": [\n    { \"group\": \"Operations\", \"icon\": \"i-lucide-briefcase\", \"children\": [ { \"dataview\": \"work-orders\" }, { \"dashboard\": \"operations\" } ] },\n    { \"group\": \"Fleet\", \"icon\": \"i-lucide-truck\", \"children\": [ { \"dataview\": \"fleet-map\" } ] }\n  ]\n}\n",[812,4233,4234,4241,4254,4347,4418,4422],{"__ignoreMap":880},[884,4235,4236,4239],{"class":886,"line":887},[884,4237,4238],{"class":890},"set_app_menu ",[884,4240,895],{"class":894},[884,4242,4243,4245,4248,4250,4252],{"class":886,"line":898},[884,4244,901],{"class":894},[884,4246,4247],{"class":904},"nodes",[884,4249,908],{"class":894},[884,4251,911],{"class":894},[884,4253,958],{"class":894},[884,4255,4256,4258,4260,4263,4265,4267,4269,4271,4273,4275,4277,4279,4281,4283,4285,4288,4290,4292,4294,4297,4299,4301,4303,4305,4307,4310,4312,4314,4316,4319,4321,4323,4325,4327,4330,4332,4334,4336,4338,4340,4342,4345],{"class":886,"line":926},[884,4257,964],{"class":894},[884,4259,914],{"class":894},[884,4261,4262],{"class":969},"group",[884,4264,908],{"class":894},[884,4266,911],{"class":894},[884,4268,914],{"class":894},[884,4270,722],{"class":917},[884,4272,908],{"class":894},[884,4274,983],{"class":894},[884,4276,914],{"class":894},[884,4278,2962],{"class":969},[884,4280,908],{"class":894},[884,4282,911],{"class":894},[884,4284,914],{"class":894},[884,4286,4287],{"class":917},"i-lucide-briefcase",[884,4289,908],{"class":894},[884,4291,983],{"class":894},[884,4293,914],{"class":894},[884,4295,4296],{"class":969},"children",[884,4298,908],{"class":894},[884,4300,911],{"class":894},[884,4302,1785],{"class":894},[884,4304,1155],{"class":894},[884,4306,914],{"class":894},[884,4308,4309],{"class":1160},"dataview",[884,4311,908],{"class":894},[884,4313,911],{"class":894},[884,4315,914],{"class":894},[884,4317,4318],{"class":917},"work-orders",[884,4320,908],{"class":894},[884,4322,2429],{"class":894},[884,4324,1155],{"class":894},[884,4326,914],{"class":894},[884,4328,4329],{"class":1160},"dashboard",[884,4331,908],{"class":894},[884,4333,911],{"class":894},[884,4335,914],{"class":894},[884,4337,3854],{"class":917},[884,4339,908],{"class":894},[884,4341,1227],{"class":894},[884,4343,4344],{"class":894}," ]",[884,4346,1032],{"class":894},[884,4348,4349,4351,4353,4355,4357,4359,4361,4364,4366,4368,4370,4372,4374,4376,4378,4381,4383,4385,4387,4389,4391,4393,4395,4397,4399,4401,4403,4405,4407,4410,4412,4414,4416],{"class":886,"line":946},[884,4350,964],{"class":894},[884,4352,914],{"class":894},[884,4354,4262],{"class":969},[884,4356,908],{"class":894},[884,4358,911],{"class":894},[884,4360,914],{"class":894},[884,4362,4363],{"class":917},"Fleet",[884,4365,908],{"class":894},[884,4367,983],{"class":894},[884,4369,914],{"class":894},[884,4371,2962],{"class":969},[884,4373,908],{"class":894},[884,4375,911],{"class":894},[884,4377,914],{"class":894},[884,4379,4380],{"class":917},"i-lucide-truck",[884,4382,908],{"class":894},[884,4384,983],{"class":894},[884,4386,914],{"class":894},[884,4388,4296],{"class":969},[884,4390,908],{"class":894},[884,4392,911],{"class":894},[884,4394,1785],{"class":894},[884,4396,1155],{"class":894},[884,4398,914],{"class":894},[884,4400,4309],{"class":1160},[884,4402,908],{"class":894},[884,4404,911],{"class":894},[884,4406,914],{"class":894},[884,4408,4409],{"class":917},"fleet-map",[884,4411,908],{"class":894},[884,4413,1227],{"class":894},[884,4415,4344],{"class":894},[884,4417,1764],{"class":894},[884,4419,4420],{"class":886,"line":961},[884,4421,2452],{"class":894},[884,4423,4424],{"class":886,"line":1035},[884,4425,1843],{"class":894},[827,4427,4429],{"id":4428},"what-the-agent-cant-do","What the agent can't do",[4431,4432,4433,4440,4449,4455],"ul",{},[4434,4435,4436,4439],"li",{},[797,4437,4438],{},"Anything its token's user can't."," Permissions, guardrails and PostgreSQL's constraints apply to every call.",[4434,4441,4442,4445,4446,825],{},[797,4443,4444],{},"Raw SQL",", unless you turn on SQL token access: views, functions and triggers need it. See ",[784,4447,683],{"href":4448},"\u002Fai-agents\u002Ftokens#sql",[4434,4450,4451,4454],{},[797,4452,4453],{},"Change its own limits."," MCP settings are changed only by an administrator signed in to the admin.",[4434,4456,4457,4460,4461,4464,4465,825],{},[797,4458,4459],{},"Delete without asking",", in Full mode: destructive calls need ",[812,4462,4463],{},"confirm",", which the agent is told to ask you for. See ",[784,4466,706],{"href":4467},"\u002Fai-agents\u002Fmcp-server#destructive-calls",[827,4469,4471],{"id":4470},"next-steps","Next steps",[4431,4473,4474,4479],{},[4434,4475,4476,4478],{},[784,4477,714],{"href":715},": every tool, by group.",[4434,4480,4481,4483],{},[784,4482,16],{"href":17},": a whole application from one prompt.",[4485,4486,4487],"style",{},"html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":880,"searchDepth":887,"depth":898,"links":4489},[4490,4491,4492,4493,4494,4495,4496,4497],{"id":829,"depth":898,"text":830},{"id":2213,"depth":898,"text":2214},{"id":2778,"depth":898,"text":2779},{"id":3139,"depth":898,"text":3140},{"id":3584,"depth":898,"text":3585},{"id":4201,"depth":898,"text":4202},{"id":4428,"depth":898,"text":4429},{"id":4470,"depth":898,"text":4471},"What you ask an agent, and what you get: a table, permissions, a DataView, a dashboard, a workflow and the App menu - with the MCP calls behind each.","md",{},true,{"title":710,"description":4498},"JT4BWjjdPoccfJjm7wUfb8SjvfRSQ8WOMT_waDNYe0s",[4505,4507],{"title":706,"path":707,"stem":708,"description":4506,"children":-1},"Connecting an agent, Settings › MCP, modes and destructive calls.",{"title":714,"path":715,"stem":716,"description":4508,"children":-1},"Every MCP tool, by group, and which are read-only or destructive.",1792339956900]