1:"$Sreact.fragment" 2:"/_next/static/chunks/2zjnuo5lr-niq.js" 3:I[70733,["$2"],"default"] 4:I[39756,["$2"],"default"] 5:I[37457,["$2"],"default"] e:I[68027,["$2"],"default",1] :HL["/_next/static/chunks/1fg78ee2ntzkw.css","style"] :HL["/clone/seo.BNWgE5cv.css","style"] 6:T35be, Skip to content
a:X b:[["children",{"s":"__PAGE__","h":512,"d":{"r":"$Lc","p":false,"v":null}}]] 8:[["children",{"s":"security","h":512,"d":{"r":"$L9","p":false,"v":"$a"},"c":"$Qb"}]] 0:{"P":null,"c":["","security"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/1fg78ee2ntzkw.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/2zjnuo5lr-niq.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"no-js","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"/clone/seo.BNWgE5cv.css"}],[["$","script",null,{"async":true,"src":"https://www.googletagmanager.com/gtag/js?id=G-PZGBMLMXC5"}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag('js',new Date());gtag('config','G-PZGBMLMXC5');"}}]]]}],["$","body",null,{"suppressHydrationWarning":true,"children":[["$","$L3",null,{}],["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","div",null,{"style":{"display":"contents"},"dangerouslySetInnerHTML":{"__html":"$6"}}],"$L7"],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}]]}]]}],"p":false,"v":null},"c":"$Q8"},"h":{"r":"$Ld","p":false,"v":null}},"m":"$undefined","G":["$e",["$Lf"]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"PAGD4CKWlgOXH_pXwcgia"} 10:"/_next/static/chunks/2lmgx7qkpy5uk.js" 11:I[59426,["$2","$10"],"default"] 17:"ViewportBoundary" 18:I[97367,["$2"],"$17"] 1a:"MetadataBoundary" 1b:I[97367,["$2"],"$1a"] 1c:"$Sreact.suspense" 12:Tf02,globalThis.process??={};globalThis.process.env??={};const s="https://larkagents.cal.com",f="lark/demo-meeting",k=`/${f}`,y=`${s}/embed/embed.js`,l="lark-demo",C=8e3,h=["utm_source","utm_medium","utm_campaign","utm_term","utm_content"];function g(e){const t=new URLSearchParams(e),o={};for(const n of h){const a=t.get(n)?.trim();a&&(o[n]=a)}return o}function p(e,t){try{const o=new URL(e,t);return o.origin===s&&o.pathname.replace(/\/+$/,"")===k}catch{return!1}}function b(e,t,o){const n=new URL(e,t);for(const a of h){const r=o[a];r&&n.searchParams.set(a,r)}return n.searchParams.delete("fbclid"),n.toString()}function c(e,t){e.q??=[],e.q.push(t)}function _(){if(window.Cal)return window.Cal;const e=((...t)=>{if(t[0]==="init"&&typeof t[1]=="string"){const o=t[1],n=((...a)=>{c(n,a)});n.q=[],e.ns??={},e.ns[o]=n,c(n,t),c(e,["initNamespace",o]);return}c(e,t)});return e.loaded=!0,e.ns={},e.q=[],window.Cal=e,e}function L(){return new Promise((e,t)=>{const o=document.createElement("script"),n=window.setTimeout(()=>{t(new Error("Cal embed script timed out"))},C);o.src=y,o.async=!0,o.dataset.larkCalEmbed="true",o.addEventListener("load",()=>{window.clearTimeout(n),e()},{once:!0}),o.addEventListener("error",()=>{window.clearTimeout(n),t(new Error("Cal embed script failed to load"))},{once:!0}),(document.head||document.documentElement).appendChild(o)})}function A(e){if(e.calReady)return e.calReady;const t=_();t("init",l,{origin:s});const o=t.ns?.[l];return o?(e.calReady=L().then(()=>o),e.calReady):(e.calReady=Promise.reject(new Error("Cal namespace failed to initialize")),e.calReady)}function U(e){const t=new WeakSet;let o=!1;const n=()=>{const r=Array.from(document.querySelectorAll("cal-modal-box")).filter(i=>i.querySelector("iframe")?.name===`cal-embed=${l}`);for(const i of r)t.has(i)||(t.add(i),a.observe(i,{attributes:!0,attributeFilter:["style","hidden"]}));const d=r.some(i=>i.isConnected&&i.style.visibility==="visible"&&!i.hidden);if(d&&!o){const i=window.location,w=i.pathname.replace(/\/+$/,"")==="/book";e.bookingReturnUrl=w?`/${i.search}`:`${i.pathname}${i.search}${i.hash}`,w||window.history.pushState(window.history.state,"",`/book${i.search}`)}else!d&&o&&(window.location.pathname.replace(/\/+$/,"")==="/book"&&e.bookingReturnUrl&&window.history.replaceState(window.history.state,"",e.bookingReturnUrl),e.bookingReturnUrl=void 0);o=d},a=new MutationObserver(n);a.observe(document.body,{childList:!0}),n(),window.addEventListener("popstate",()=>{window.location.pathname.replace(/\/+$/,"")==="/book"?m(e).catch(()=>{console.warn("The booking calendar could not reopen.")}):window.Cal?.ns?.[l]?.("closeModal")})}async function m(e){(await A(e))("modal",{calLink:f,calOrigin:s,config:{...e.initialUtms}})}function u(e){for(const t of document.querySelectorAll("a[href]")){const o=t.getAttribute("href");!o||!p(o,window.location.href)||(t.href=b(o,window.location.href,e.initialUtms))}}function R(e,t){const o=t.getAttribute("target");return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!t.hasAttribute("download")&&(!o||o.toLowerCase()==="_self")}function E(){if(window.__larkCalDemoBooking?.installed){u(window.__larkCalDemoBooking);return}const e={installed:!0,initialUtms:g(window.location.search)};window.__larkCalDemoBooking=e,U(e),u(e),document.addEventListener("astro:page-load",()=>u(e)),window.addEventListener("click",t=>{if(!(t.target instanceof Element))return;const o=t.target.closest("a[href]");if(!o||!R(t,o))return;const n=o.getAttribute("href");if(!n||!p(n,window.location.href))return;const a=b(n,window.location.href,e.initialUtms);o.href=a,t.preventDefault(),t.stopPropagation(),m(e).catch(()=>{window.location.assign(a)})},{capture:!0}),window.location.pathname.replace(/\/+$/,"")==="/book"&&m(e).catch(()=>{console.warn("The booking calendar could not load automatically.")})}E();7:["$","$L11",null,{"scripts":[{"type":"text/javascript","code":"\n (function () {\n const d = document.documentElement; d.classList.remove('no-js'); d.classList.add('js');\n const q = new URLSearchParams(location.search);\n if (q.has('static') && q.get('static') !== '0') d.classList.add('is-static');\n if (matchMedia('(prefers-reduced-motion: reduce)').matches) d.classList.add('is-reduced');\n })();\n"},{"type":"module","code":"$12"},{"type":"module","code":"globalThis.process??={};globalThis.process.env??={};const t=document.getElementById(\"ld-hdr\");if(t){const c=t.dataset.variant===\"over\",d=t.querySelector(\".ld-menu-btn\"),s=document.getElementById(\"ld-mnav\"),a=()=>{const e=scrollY;t.classList.toggle(\"is-scrolled\",e>8),c&&t.classList.toggle(\"is-over\",e<=24&&s.hidden)};addEventListener(\"scroll\",a,{passive:!0}),a();const n=e=>{d.setAttribute(\"aria-expanded\",String(e)),s.hidden=!e,t.classList.toggle(\"is-menu\",e),a()};d.addEventListener(\"click\",()=>n(d.getAttribute(\"aria-expanded\")!==\"true\")),addEventListener(\"click\",e=>{!s.hidden&&s.contains(e.target)&&e.target.closest(\"a\")&&n(!1)},{capture:!0}),document.addEventListener(\"keydown\",e=>{e.key===\"Escape\"&&!s.hidden&&(n(!1),d.focus())}),document.addEventListener(\"click\",e=>{!s.hidden&&!t.contains(e.target)&&n(!1)}),t.addEventListener(\"focusout\",e=>{const i=e.relatedTarget;!s.hidden&&i&&!t.contains(i)&&n(!1)}),matchMedia(\"(min-width: 961px)\").addEventListener(\"change\",e=>{e.matches&&n(!1)})}"},{"type":"module","src":"/clone/Layout.astro_astro_type_script_index_0_lang.D3EbQkyY.js"}]}] 9:["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}] 13:Tcd95, Skip to content

SecurityApproved workflows · Log · Control · Data

Lark works inside the limits you set

You approve a workflow once and set its limits. Lark then runs it on its own and logs every action. Pause or take over at any time.

Approved workflow

Replenishment POs

POs under $5,000 for approved vendors go through on their own; bigger ones wait for a buyer.

Paused. Every PO waits for a buyer until it is back on.

PO total
under $5,000
Vendors
approved vendors only
Everything else
waits for a buyer

DBApproved by Dana Brooks on Sep 12. Every read and action is logged.

Today · 4 POs

  • Harbor Plumbing SupplyPO 10482 · 2 lines$1,032.00Went through
  • Northwind IndustrialPO 10483 · 2 lines$2,995.00Went through
  • Acme SupplyPO 10484 · 1 line$940.80Went through
  • Summit Electric SupplyPO 10485 · 2 lines$6,252.00Waits for a buyer
Went through on their own$4,967.80
Waiting for a buyer$6,252.00
Activity logPause or take over at any time.

01 Approved workflows

Approve once Set the limits

Lark enters data in your ERP only through workflows your team approves, and only within their limits.

Example“POs under $5,000 for approved vendors go through on their own; bigger ones wait for a buyer.”

Under the limit, approved vendor: goes through on its own.
Over the limit: waits for a buyer.

02 The log Visible to your team

Every read and action, in a log your team can see

What Lark read or did, in which system, and when. People and agents are in the same log.

03 Pause and take over

Step in at any time

Switch a workflow off and every PO waits for a buyer until it is back on. Take over any item and it's yours to edit and approve.

  • Pause any workflow at any time.
  • Anything over a limit already waits for your team.
  • Take over any item, then edit and approve it yourself.

Approved workflow

POs under $5,000 for approved vendors go through on their own; bigger ones wait for a buyer.

Paused. Every PO waits for a buyer until it is back on.

04 Your data 6 facts

Your data stays yours

How Lark keeps your credentials and your data safe.

  • A vault for your company

    Credentials sit in a vault just for your company and never reach an AI model.

  • Kept separate

    Your data is kept separate from every other customer's.

  • Never used for training

    Your data is used to run your agents, and never to train models.

  • Google Cloud, US

    Lark is hosted on Google Cloud in the US.

  • Encrypted

    Your data is encrypted in transit and at rest.

  • Logged

    Every read and action is logged, and your team can see the log.

Security pack

Request the security pack

Everything your IT team needs to review Lark. We reply from security@larkagents.com.

  1. 01How Lark connects, as a diagram
  2. 02This page as a PDF
  3. 03The subprocessor list
  4. 04Answers to your security questionnaire
  5. 05How to revoke access
c:["$","$1","c",{"children":[[["$","div",null,{"style":{"display":"contents"},"dangerouslySetInnerHTML":{"__html":"$13"}}],"$L14"],["$L15"],"$L16"]}] d:["$","$1","h",{"children":[null,["$","$L18",null,{"children":"$L19"}],["$","$L1b",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$1c",null,{"name":"Next.Metadata","children":"$L1d"}]}],null]}],null]}] f:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/1fg78ee2ntzkw.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] 1f:I[97367,["$2"],"OutletBoundary"] a:C 1e:Tf02,globalThis.process??={};globalThis.process.env??={};const s="https://larkagents.cal.com",f="lark/demo-meeting",k=`/${f}`,y=`${s}/embed/embed.js`,l="lark-demo",C=8e3,h=["utm_source","utm_medium","utm_campaign","utm_term","utm_content"];function g(e){const t=new URLSearchParams(e),o={};for(const n of h){const a=t.get(n)?.trim();a&&(o[n]=a)}return o}function p(e,t){try{const o=new URL(e,t);return o.origin===s&&o.pathname.replace(/\/+$/,"")===k}catch{return!1}}function b(e,t,o){const n=new URL(e,t);for(const a of h){const r=o[a];r&&n.searchParams.set(a,r)}return n.searchParams.delete("fbclid"),n.toString()}function c(e,t){e.q??=[],e.q.push(t)}function _(){if(window.Cal)return window.Cal;const e=((...t)=>{if(t[0]==="init"&&typeof t[1]=="string"){const o=t[1],n=((...a)=>{c(n,a)});n.q=[],e.ns??={},e.ns[o]=n,c(n,t),c(e,["initNamespace",o]);return}c(e,t)});return e.loaded=!0,e.ns={},e.q=[],window.Cal=e,e}function L(){return new Promise((e,t)=>{const o=document.createElement("script"),n=window.setTimeout(()=>{t(new Error("Cal embed script timed out"))},C);o.src=y,o.async=!0,o.dataset.larkCalEmbed="true",o.addEventListener("load",()=>{window.clearTimeout(n),e()},{once:!0}),o.addEventListener("error",()=>{window.clearTimeout(n),t(new Error("Cal embed script failed to load"))},{once:!0}),(document.head||document.documentElement).appendChild(o)})}function A(e){if(e.calReady)return e.calReady;const t=_();t("init",l,{origin:s});const o=t.ns?.[l];return o?(e.calReady=L().then(()=>o),e.calReady):(e.calReady=Promise.reject(new Error("Cal namespace failed to initialize")),e.calReady)}function U(e){const t=new WeakSet;let o=!1;const n=()=>{const r=Array.from(document.querySelectorAll("cal-modal-box")).filter(i=>i.querySelector("iframe")?.name===`cal-embed=${l}`);for(const i of r)t.has(i)||(t.add(i),a.observe(i,{attributes:!0,attributeFilter:["style","hidden"]}));const d=r.some(i=>i.isConnected&&i.style.visibility==="visible"&&!i.hidden);if(d&&!o){const i=window.location,w=i.pathname.replace(/\/+$/,"")==="/book";e.bookingReturnUrl=w?`/${i.search}`:`${i.pathname}${i.search}${i.hash}`,w||window.history.pushState(window.history.state,"",`/book${i.search}`)}else!d&&o&&(window.location.pathname.replace(/\/+$/,"")==="/book"&&e.bookingReturnUrl&&window.history.replaceState(window.history.state,"",e.bookingReturnUrl),e.bookingReturnUrl=void 0);o=d},a=new MutationObserver(n);a.observe(document.body,{childList:!0}),n(),window.addEventListener("popstate",()=>{window.location.pathname.replace(/\/+$/,"")==="/book"?m(e).catch(()=>{console.warn("The booking calendar could not reopen.")}):window.Cal?.ns?.[l]?.("closeModal")})}async function m(e){(await A(e))("modal",{calLink:f,calOrigin:s,config:{...e.initialUtms}})}function u(e){for(const t of document.querySelectorAll("a[href]")){const o=t.getAttribute("href");!o||!p(o,window.location.href)||(t.href=b(o,window.location.href,e.initialUtms))}}function R(e,t){const o=t.getAttribute("target");return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!t.hasAttribute("download")&&(!o||o.toLowerCase()==="_self")}function E(){if(window.__larkCalDemoBooking?.installed){u(window.__larkCalDemoBooking);return}const e={installed:!0,initialUtms:g(window.location.search)};window.__larkCalDemoBooking=e,U(e),u(e),document.addEventListener("astro:page-load",()=>u(e)),window.addEventListener("click",t=>{if(!(t.target instanceof Element))return;const o=t.target.closest("a[href]");if(!o||!R(t,o))return;const n=o.getAttribute("href");if(!n||!p(n,window.location.href))return;const a=b(n,window.location.href,e.initialUtms);o.href=a,t.preventDefault(),t.stopPropagation(),m(e).catch(()=>{window.location.assign(a)})},{capture:!0}),window.location.pathname.replace(/\/+$/,"")==="/book"&&m(e).catch(()=>{console.warn("The booking calendar could not load automatically.")})}E();14:["$","$L11",null,{"scripts":[{"type":"text/javascript","code":"\n (function () {\n const d = document.documentElement; d.classList.remove('no-js'); d.classList.add('js');\n const q = new URLSearchParams(location.search);\n if (q.has('static') && q.get('static') !== '0') d.classList.add('is-static');\n if (matchMedia('(prefers-reduced-motion: reduce)').matches) d.classList.add('is-reduced');\n })();\n"},{"type":"text/javascript","code":"(function(){const d=document.documentElement,q=location.search;try{if(matchMedia('(prefers-reduced-motion: reduce)').matches||/[?&]static(?:=(?!0)|&|$)/.test(q)||d.classList.contains('is-static'))return}catch{return}d.classList.add('lk-motion');setTimeout(function(){if(!window.__lkReady)d.classList.remove('lk-motion')},4000)})();"},{"type":"module","src":"/clone/LkMotion.astro_astro_type_script_index_0_lang.CGLHIUYG.js"},{"type":"module","code":"$1e"},{"type":"module","code":"globalThis.process??={};globalThis.process.env??={};const t=document.getElementById(\"ld-hdr\");if(t){const c=t.dataset.variant===\"over\",d=t.querySelector(\".ld-menu-btn\"),s=document.getElementById(\"ld-mnav\"),a=()=>{const e=scrollY;t.classList.toggle(\"is-scrolled\",e>8),c&&t.classList.toggle(\"is-over\",e<=24&&s.hidden)};addEventListener(\"scroll\",a,{passive:!0}),a();const n=e=>{d.setAttribute(\"aria-expanded\",String(e)),s.hidden=!e,t.classList.toggle(\"is-menu\",e),a()};d.addEventListener(\"click\",()=>n(d.getAttribute(\"aria-expanded\")!==\"true\")),addEventListener(\"click\",e=>{!s.hidden&&s.contains(e.target)&&e.target.closest(\"a\")&&n(!1)},{capture:!0}),document.addEventListener(\"keydown\",e=>{e.key===\"Escape\"&&!s.hidden&&(n(!1),d.focus())}),document.addEventListener(\"click\",e=>{!s.hidden&&!t.contains(e.target)&&n(!1)}),t.addEventListener(\"focusout\",e=>{const i=e.relatedTarget;!s.hidden&&i&&!t.contains(i)&&n(!1)}),matchMedia(\"(min-width: 961px)\").addEventListener(\"change\",e=>{e.matches&&n(!1)})}"},{"type":"module","src":"/clone/Layout.astro_astro_type_script_index_0_lang.D3EbQkyY.js"}]}] 15:["$","script","script-0",{"src":"/_next/static/chunks/2lmgx7qkpy5uk.js","async":true,"nonce":"$undefined"}] 16:["$","$L1f",null,{"children":["$","$1c",null,{"name":"Next.MetadataOutlet","children":"$@20"}]}] 19:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#F6F4EF"}]] 21:I[27201,["$2"],"IconMark"] 1d:[["$","title","0",{"children":"Security · Approved workflows, limits you set · Lark"}],["$","meta","1",{"name":"description","content":"Lark works inside workflows you approve and limits you set. Every read and action is logged for your team, and you can pause or take over at any time."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"canonical","href":"https://larkagents.com/security"}],["$","meta","4",{"property":"og:title","content":"Security · Approved workflows, limits you set · Lark"}],["$","meta","5",{"property":"og:description","content":"Lark works inside workflows you approve and limits you set. Every read and action is logged for your team, and you can pause or take over at any time."}],["$","meta","6",{"property":"og:url","content":"https://larkagents.com/security"}],["$","meta","7",{"property":"og:site_name","content":"Lark"}],["$","meta","8",{"property":"og:locale","content":"en_US"}],["$","meta","9",{"property":"og:image","content":"https://theocdn.com/site-assets/67c1b704-a6e9-4392-a3b3-2ec2ce01230e/original/lark-og-4970a2000f32c3125dfd.jpg"}],["$","meta","10",{"property":"og:image:type","content":"image/jpeg"}],["$","meta","11",{"property":"og:image:width","content":"1200"}],["$","meta","12",{"property":"og:image:height","content":"630"}],["$","meta","13",{"property":"og:image:alt","content":"Lark: Specialized AI Agents for Distributors"}],["$","meta","14",{"property":"og:type","content":"website"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"Security · Approved workflows, limits you set · Lark"}],["$","meta","17",{"name":"twitter:description","content":"Lark works inside workflows you approve and limits you set. Every read and action is logged for your team, and you can pause or take over at any time."}],["$","meta","18",{"name":"twitter:image","content":"https://theocdn.com/site-assets/67c1b704-a6e9-4392-a3b3-2ec2ce01230e/original/lark-og-4970a2000f32c3125dfd.jpg"}],["$","meta","19",{"name":"twitter:image:alt","content":"Lark: Specialized AI Agents for Distributors"}],["$","link","20",{"rel":"icon","href":"https://theocdn.com/site-assets/67c1b704-a6e9-4392-a3b3-2ec2ce01230e/original/favicon-90c54d4abbe7d8856d77.ico","type":"image/x-icon"}],["$","link","21",{"rel":"apple-touch-icon","href":"https://theocdn.com/site-assets/67c1b704-a6e9-4392-a3b3-2ec2ce01230e/original/apple-touch-icon-8b85c379d43cfc35dfd9.png"}],["$","$L21","22",{}]] 20:null