https://bichart.ai/_next/static/chunks/8065-746f07c1987b1155.js?dpl=dpl_HEDwXKbStKm4abnviV6dC5Ej3hXZ
1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8065],{13303:(e,t,a)=>{a.d(t,{E:()=>m});let r="242446062",o=/<script\b[^>]*\bsrc=["'][^"']*hsforms\.net\/forms\/embed\/[^"']*["'][^>]*>\s*<\/script>/gi,n=/<script\b[^>]*>[\s\S]*?hbspt\.forms\.create\([\s\S]*?<\/script>/gi,s=/<div\b[^>]*\bhs-form-frame\b[^>]*>\s*<\/div>/gi,i=/<!--bichart-hs-form:([^:>]+):([^:>]+):([^>]+)-->/g;function l(e,t){let a=RegExp(`\\b${t}=["']([^"']+)["']`,"i");return e.match(a)?.[1]}function d(e,t){let a=RegExp(`${t}\\s*:\\s*["']([^"']+)["']`,"i");return e.match(a)?.[1]}function c(e){let{portalId:t,formId:a,region:r}=e;return`<!--bichart-hs-form:${t}:${a}:${r}-->`}function m(e){if(!e)return{html:"",hasForm:!1,forms:[],segments:[],scriptKey:""};let t=[],a=e.replace(n,e=>{let a=d(e,"formId");if(!a)return"";let o={formId:a,portalId:d(e,"portalId")??r,region:d(e,"region")??"na2"};return t.some(e=>e.formId===a)||t.push(o),c(o)});a=(a=a.replace(s,e=>{let a=l(e,"data-form-id");if(!a)return"";let o={formId:a,portalId:l(e,"data-portal-id")??r,region:l(e,"data-region")??"na2"};return t.some(e=>e.formId===a)||t.push(o),c(o)})).replace(o,"");let m=[...new Map(t.map(e=>[e.formId,e])).values()],u=[],h=0;for(let e of(i.lastIndex=0,a.matchAll(i))){let t=e.index??0;t>h&&u.push({type:"html",html:a.slice(h,t)}),u.push({type:"form",form:{portalId:e[1],formId:e[2],region:e[3]}}),h=t+e[0].length}return h<a.length&&u.push({type:"html",html:a.slice(h)}),0===u.length&&a.trim()&&u.push({type:"html",html:a}),{html:a,hasForm:m.length>0,forms:m,segments:u,scriptKey:m.map(e=>e.formId).sort().join(",")||"hubspot"}}},15239:(e,t,a)=>{a.d(t,{default:()=>o.a});var r=a(54652),o=a.n(r)},15894:(e,t,a)=>{a.d(t,{dj:()=>m});var r=a(12115);let o=0,n=new Map,s=e=>{if(n.has(e))return;let t=setTimeout(()=>{n.delete(e),d({type:"REMOVE_TOAST",toastId:e})},1e6);n.set(e,t)},i=[],l={toasts:[]};function d(e){l=((e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:a}=t;return a?s(a):e.toasts.forEach(e=>{s(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===a||void 0===a?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}})(l,e),i.forEach(e=>{e(l)})}function c(e){let{...t}=e,a=(o=(o+1)%Number.MAX_SAFE_INTEGER).toString(),r=()=>d({type:"DISMISS_TOAST",toastId:a});return d({type:"ADD_TOAST",toast:{...t,id:a,open:!0,onOpenChange:e=>{e||r()}}}),{id:a,dismiss:r,update:e=>d({type:"UPDATE_TOAST",toast:{...e,id:a}})}}function m(){let[e,t]=r.useState(l);return r.useEffect(()=>(i.push(t),()=>{let e=i.indexOf(t);e>-1&&i.splice(e,1)}),[e]),{...e,toast:c,dismiss:e=>d({type:"DISMISS_TOAST",toastId:e})}}},41961:(e,t,a)=>{a.d(t,{_I:()=>n,pT:()=>s});var r=a(86328);let o=[{slug:"alec-smith",name:"Alec Smith",jobTitle:"Chief Executive Officer",image:"/Alec_hs_new.jpeg",linkedinUrl:"https://www.linkedin.com/in/alec-smith-699170ba/",summary:"Alec Smith is CEO and co-founder of BIChart, the platform enterprises use to migrate Tableau to Power BI and Microsoft Fabric without rebuilding every dashboard by hand.",body:["Before founding BIChart in 2025, Alec worked both sides of the migration problem. He was a Tableau consultant at Capgemini, then System Administrator and Lead Tableau/Power BI Engineer at Starbucks, supporting enterprise BI across corporate and retail. Earlier roles include Lead Data Engineer at Reliant Funding and Lead Data Analyst at Axos Bank. He was also Product Owner on AccessAI, a pharma semantic search product, where he learned to scope AI to structured metadata and measurable outcomes.","That combination of practitioner Tableau experience and applied AI product work shaped how BIChart is built: it reads Tableau workbook and data source metadata and produces Fabric-ready Power BI artifacts, with a clear review surface for anything that still needs a human."],owns:["Tableau to Power BI: inventory, risk scoring, automated conversion, gap review, .PBIP or publish","Tableau to Fabric: same engine, landing governed semantic models and reports into a Fabric workspace (OneLake, Entra, workspace roles)","Data-layer modernization work when the real gap is ingestion and modeling, not chart parity"],knowsAbout:["Tableau to Power BI Migration","Tableau to Microsoft Fabric Migration","Business Intelligence Architecture"],ctaLinks:[{href:r.lW,label:"Tableau to Power BI"},{href:r.HE,label:"Tableau to Microsoft Fabric"}],metaDescription:"Alec Smith is CEO and co-founder of BIChart. He leads Tableau to Power BI and Tableau to Microsoft Fabric migration for enterprise teams."},{slug:"ryan-goodman",name:"Ryan Goodman",jobTitle:"Go-to-Market",image:"/ryan_goodman_headshot_2 (1).jpeg",linkedinUrl:"https://www.linkedin.com/in/ryangoodmansd/",summary:"Ryan Goodman leads go-to-market for BIChart's Tableau to Power BI and Microsoft Fabric migration platform. He brings two decades of advisory experience building conversational analytics and BI strategy for enterprise teams.",body:["Most recently through DataTools Pro, he built analytics assessment and governance frameworks across Salesforce, Tableau, and Snowflake.","He was VP of Data and Analytics at Reliant Funding, and ran CMaps Analytics for 10 years inside the SAP ecosystem. Ryan also spent time at BusinessObjects, where he led as a global GTM and presales overlay.","He's an active member of the Microsoft and Snowflake communities and writes for Salesforce Ben."],owns:["GTM motions and partner enablement","Analytics assessment, initiative planning, and governance","Frames Tableau to Power BI and Conversational Analytics positioning"],knowsAbout:["Conversational Analytics","Analytics governance","Tableau to Power BI Migration"],ctaLinks:[{href:r.lW,label:"Tableau to Power BI"}],metaDescription:"Ryan Goodman leads go-to-market at BIChart. Two decades of BI leadership across conversational analytics, governance, and Tableau to Power BI."},{slug:"florian-proksch",name:"Florian Proksch",jobTitle:"Chief Technology Officer",image:"/flo_bichart_variant3_more_shoulders_800.jpg",linkedinUrl:"https://www.linkedin.com/in/florian-proksch-8871b272/",summary:"Florian Proksch is CTO at BIChart, where he owns the technical spine of the Tableau to Power BI and Fabric conversion engine: parsing workbook and data source metadata (TWBX, TDS/TDSX), mapping calculations toward DAX, producing Fabric-ready artifacts including .PBIP, and building the secure connection paths between Tableau, Entra, and Power BI/Fabric.",body:["He has worked as a solution architect and DevOps engineer for more than 15 years, the kind of work companies call in when a cloud project stalls, cost goes opaque, or an AI initiative never leaves the slide deck. That includes AWS and Azure architecture, Kubernetes and infrastru
1cture-as-code, and custom GenAI systems in regulated environments, including a pharma document-search product built with Elasticsearch, authentication, and audit logging.","Through Flowprodev, his software services practice based in Nuremberg, Germany, he continues to help companies ship cloud, DevOps, and AI systems that operations teams can actually run."],owns:["Tableau to Power BI: conversion reliability, DAX/model fidelity, .PBIP output","Tableau to Fabric: publishing into workspaces, semantic-model readiness, and estate placement after assets land, not just chart redraws"],knowsAbout:["Cloud architecture","DevOps","Fabric deployment"],ctaLinks:[{href:r.lW,label:"Tableau to Power BI"},{href:r.HE,label:"Tableau to Microsoft Fabric"}],metaDescription:"Florian Proksch is CTO at BIChart. He owns the Tableau to Power BI and Fabric conversion engine, DAX fidelity, and .PBIP output."}];function n(e){return o.find(t=>t.slug===e)}function s(e,t){var a;let r=function(e,t){if(e){let t=n(e);if(t)return t}if(t){let e=t.trim().toLowerCase();return o.find(t=>t.name.toLowerCase()===e)}}(e,t);return r?(a=r.slug,`/team/${a}`):null}},54652:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(t,{default:function(){return l},getImageProps:function(){return i}});let r=a(30943),o=a(75040),n=a(81356),s=r._(a(71124));function i(e){let{props:t}=(0,o.getImgProps)(e,{defaultLoader:s.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,a]of Object.entries(t))void 0===a&&delete t[e];return{props:t}}let l=n.Image},68681:(e,t,a)=>{a.d(t,{A:()=>d});var r=a(95155),o=a(12115),n=a(26302),s=a(3998),i=a(15894),l=a(60080);function d(e){let{form:t,submitLabel:a="Access Case Study"}=e,d=(0,n.sf)(),{toast:c}=(0,i.dj)(),[m,u]=(0,o.useState)(!1),[h,p]=(0,o.useState)(!1),[f,b]=(0,o.useState)({firstname:"",lastname:"",email:""}),g=async e=>{if(e.preventDefault(),!m){u(!0);try{let e=function(){if("undefined"!=typeof document)return document.cookie.match(/(?:^|;\s*)hubspotutk=([^;]+)/)?.[1]}(),a=await fetch(`https://api.hsforms.com/submissions/v3/integration/submit/${t.portalId}/${t.formId}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fields:[{objectTypeId:"0-1",name:"firstname",value:f.firstname},{objectTypeId:"0-1",name:"lastname",value:f.lastname},{objectTypeId:"0-1",name:"email",value:f.email}],context:{...e?{hutk:e}:{},pageUri:window.location.href,pageName:"undefined"!=typeof document?document.title:""}})}),r=await a.json().catch(()=>({}));if(!a.ok){let e=r.errors?.[0]?.message||r.message||"Please check your details and try again.";throw Error(e)}(0,l.y6)({posthog:d,eventName:"form_submitted",distinctId:f.email,properties:{firstname:f.firstname,lastname:f.lastname,email:f.email,form_type:"hubspot_case_study_gate",hubspot_form_id:t.formId,form_id:`hubspot-${t.formId}`}}),p(!0),r.redirectUri&&window.open(r.redirectUri,"_blank","noopener,noreferrer")}catch(e){c({variant:"destructive",title:"Could not submit form",description:e instanceof Error?e.message:"Something went wrong."})}finally{u(!1)}}};return h?(0,r.jsxs)("div",{className:"not-prose my-8 rounded-2xl border border-gold/20 bg-gold/5 px-6 py-8 text-center",children:[(0,r.jsx)("p",{className:"text-lg font-semibold text-dark-text dark:text-white",children:"You're in."}),(0,r.jsx)("p",{className:"mt-2 text-sm text-zinc-600 dark:text-zinc-400",children:"The case study PDF should open in a new tab. If it didn't, check your email or popup blocker."})]}):(0,r.jsxs)("form",{onSubmit:g,className:"not-prose my-8 max-w-xl space-y-4 rounded-2xl border border-zinc-200 bg-white p-6 shadow-sm dark:border-zinc-800 dark:bg-zinc-950","aria-label":"Case study access form",children:[(0,r.jsxs)("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:`hs-${t.formId}-firstname`,className:"block text-sm font-normal text-dark-text dark:text-white",children:"First Name"}),(0,r.jsx)("input",{id:`hs-${t.formId}-firstname`,type:"text",required:!0,autoComplete:"given-name",className:"mt-1 block w-full rounded-md border border-zinc-300 bg-white px-3 py-2 text-sm text-dark-text dark:border-zinc-700 dark:bg-black dark:text-white",value:f.firstname,onChange:e=>b({...f,firstname:e.target.value})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:`hs-${t.formId}-lastname`,className:"block text-sm font-normal text-dark-text dark:text-white",children:"Last Name"}),(0,r.jsx)("input",{id:`hs-${t.formId}-lastname`,type:"text",required:!0,autoComplete:"family-name",className:"mt-1 block w-full rounded-md border border-zinc-300 bg-white px-3 py-2 text-sm text-dark-text dark:border-zinc-700 dark:bg-black dark:text-white",value:f.lastname,onChange:e=>b({...f,lastname:e.target.value})})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{htmlFor:`hs-${t.formId}-email`,className:"block text-sm font-normal text-dark-text dark:text-white",children:["Email",(0,r.jsx)("span",{className:"text-red-600",children:"*"})]}),(0,r.jsx)("input",{id:`hs-${t.formId}-email`,type:"email",required:!0,autoComplete:"email",className:"mt-1 block w-full rounded-md border border-zinc-300 bg-white px-3 py-2 text-sm text-dark-text dark:border-zinc-700 dark:bg-black dark:text-white",value:f.email,onChange:e=>b({...f,email:e.target.value})})]}),(0,r.jsx)("div",{className:"flex justify-center pt-2",children:(0,r.jsx)(s.$,{type:"submit",variant:"gold",size:"lg",disabled:m,className:"disabled:opacity-50",children:m?"Submitting...":a})})]})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.