[{"data":1,"prerenderedAt":678},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fconnections\u002Foverview":3},{"page":4,"navigation":607,"surround":675},{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9,"description":10,"navigation":11,"body":13,"_type":601,"_id":602,"_source":603,"_file":604,"_stem":605,"_extension":606},"\u002Fdocs\u002Fconnections\u002Foverview","connections",false,"","Connections","Add a source, name it, choose which tables to sync, and understand how its tables are named in SQL.",{"title":12},"Overview",{"type":14,"children":15,"toc":593},"root",[16,25,185,207,213,251,269,275,280,367,388,394,407,483,510,538,550,556,576,582,587],{"type":17,"tag":18,"props":19,"children":21},"element","h2",{"id":20},"supported-sources",[22],{"type":23,"value":24},"text","Supported sources",{"type":17,"tag":26,"props":27,"children":28},"table",{},[29,53],{"type":17,"tag":30,"props":31,"children":32},"thead",{},[33],{"type":17,"tag":34,"props":35,"children":36},"tr",{},[37,43,48],{"type":17,"tag":38,"props":39,"children":40},"th",{},[41],{"type":23,"value":42},"Source",{"type":17,"tag":38,"props":44,"children":45},{},[46],{"type":23,"value":47},"How it connects",{"type":17,"tag":38,"props":49,"children":50},{},[51],{"type":23,"value":52},"Guide",{"type":17,"tag":54,"props":55,"children":56},"tbody",{},[57,80,101,122,144,163],{"type":17,"tag":34,"props":58,"children":59},{},[60,66,71],{"type":17,"tag":61,"props":62,"children":63},"td",{},[64],{"type":23,"value":65},"Salesforce",{"type":17,"tag":61,"props":67,"children":68},{},[69],{"type":23,"value":70},"Username and security token, a connected app, or a refresh token",{"type":17,"tag":61,"props":72,"children":73},{},[74],{"type":17,"tag":75,"props":76,"children":78},"a",{"href":77},"\u002Fdocs\u002Fconnections\u002Fsalesforce",[79],{"type":23,"value":65},{"type":17,"tag":34,"props":81,"children":82},{},[83,88,93],{"type":17,"tag":61,"props":84,"children":85},{},[86],{"type":23,"value":87},"Marketo",{"type":17,"tag":61,"props":89,"children":90},{},[91],{"type":23,"value":92},"REST API client ID and secret",{"type":17,"tag":61,"props":94,"children":95},{},[96],{"type":17,"tag":75,"props":97,"children":99},{"href":98},"\u002Fdocs\u002Fconnections\u002Fmarketo",[100],{"type":23,"value":87},{"type":17,"tag":34,"props":102,"children":103},{},[104,109,114],{"type":17,"tag":61,"props":105,"children":106},{},[107],{"type":23,"value":108},"Google Analytics 4",{"type":17,"tag":61,"props":110,"children":111},{},[112],{"type":23,"value":113},"The property's BigQuery export, read with a service account",{"type":17,"tag":61,"props":115,"children":116},{},[117],{"type":17,"tag":75,"props":118,"children":120},{"href":119},"\u002Fdocs\u002Fconnections\u002Fgoogle-analytics-4",[121],{"type":23,"value":108},{"type":17,"tag":34,"props":123,"children":124},{},[125,130,135],{"type":17,"tag":61,"props":126,"children":127},{},[128],{"type":23,"value":129},"PostgreSQL",{"type":17,"tag":61,"props":131,"children":132},{},[133],{"type":23,"value":134},"Host, database, user and password",{"type":17,"tag":61,"props":136,"children":137},{},[138],{"type":17,"tag":75,"props":139,"children":141},{"href":140},"\u002Fdocs\u002Fconnections\u002Fpostgres-mysql",[142],{"type":23,"value":143},"PostgreSQL and MySQL",{"type":17,"tag":34,"props":145,"children":146},{},[147,152,156],{"type":17,"tag":61,"props":148,"children":149},{},[150],{"type":23,"value":151},"MySQL",{"type":17,"tag":61,"props":153,"children":154},{},[155],{"type":23,"value":134},{"type":17,"tag":61,"props":157,"children":158},{},[159],{"type":17,"tag":75,"props":160,"children":161},{"href":140},[162],{"type":23,"value":143},{"type":17,"tag":34,"props":164,"children":165},{},[166,171,176],{"type":17,"tag":61,"props":167,"children":168},{},[169],{"type":23,"value":170},"Sample data",{"type":17,"tag":61,"props":172,"children":173},{},[174],{"type":23,"value":175},"One click, no credentials",{"type":17,"tag":61,"props":177,"children":178},{},[179],{"type":17,"tag":75,"props":180,"children":182},{"href":181},"\u002Fdocs\u002Fgetting-started\u002Fquickstart",[183],{"type":23,"value":184},"Quickstart",{"type":17,"tag":186,"props":187,"children":188},"p",{},[189,191,197,199,205],{"type":23,"value":190},"HubSpot and NetSuite are listed as ",{"type":17,"tag":192,"props":193,"children":194},"strong",{},[195],{"type":23,"value":196},"Coming soon",{"type":23,"value":198}," in the app. If you need a source that isn't listed, ",{"type":17,"tag":75,"props":200,"children":202},{"href":201},"\u002Fcontact",[203],{"type":23,"value":204},"tell us",{"type":23,"value":206},".",{"type":17,"tag":18,"props":208,"children":210},{"id":209},"adding-a-connection",[211],{"type":23,"value":212},"Adding a connection",{"type":17,"tag":214,"props":215,"children":216},"ol",{},[217,229,234,239],{"type":17,"tag":218,"props":219,"children":220},"li",{},[221,223,227],{"type":23,"value":222},"Open ",{"type":17,"tag":192,"props":224,"children":225},{},[226],{"type":23,"value":9},{"type":23,"value":228}," and choose a source.",{"type":17,"tag":218,"props":230,"children":231},{},[232],{"type":23,"value":233},"Give the connection a name (see below) and fill in the credentials.",{"type":17,"tag":218,"props":235,"children":236},{},[237],{"type":23,"value":238},"Save. Datachef tests the connection and lists the tables the source offers.",{"type":17,"tag":218,"props":240,"children":241},{},[242,244,250],{"type":23,"value":243},"Turn on the tables you want and choose how each one syncs. See ",{"type":17,"tag":75,"props":245,"children":247},{"href":246},"\u002Fdocs\u002Fconnections\u002Fsync-settings",[248],{"type":23,"value":249},"sync settings",{"type":23,"value":206},{"type":17,"tag":186,"props":252,"children":253},{},[254,256,261,263,268],{"type":23,"value":255},"Adding and changing connections needs the ",{"type":17,"tag":192,"props":257,"children":258},{},[259],{"type":23,"value":260},"Editor",{"type":23,"value":262}," role in the workspace. Deleting one needs ",{"type":17,"tag":192,"props":264,"children":265},{},[266],{"type":23,"value":267},"Admin",{"type":23,"value":206},{"type":17,"tag":18,"props":270,"children":272},{"id":271},"connection-names-and-labels",[273],{"type":23,"value":274},"Connection names and labels",{"type":17,"tag":186,"props":276,"children":277},{},[278],{"type":23,"value":279},"Every connection has two names:",{"type":17,"tag":26,"props":281,"children":282},{},[283,307],{"type":17,"tag":30,"props":284,"children":285},{},[286],{"type":17,"tag":34,"props":287,"children":288},{},[289,292,297,302],{"type":17,"tag":38,"props":290,"children":291},{},[],{"type":17,"tag":38,"props":293,"children":294},{},[295],{"type":23,"value":296},"What it is",{"type":17,"tag":38,"props":298,"children":299},{},[300],{"type":23,"value":301},"Example",{"type":17,"tag":38,"props":303,"children":304},{},[305],{"type":23,"value":306},"Can change?",{"type":17,"tag":54,"props":308,"children":309},{},[310,341],{"type":17,"tag":34,"props":311,"children":312},{},[313,321,326,336],{"type":17,"tag":61,"props":314,"children":315},{},[316],{"type":17,"tag":192,"props":317,"children":318},{},[319],{"type":23,"value":320},"Name",{"type":17,"tag":61,"props":322,"children":323},{},[324],{"type":23,"value":325},"The SQL schema its tables are queried through",{"type":17,"tag":61,"props":327,"children":328},{},[329],{"type":17,"tag":330,"props":331,"children":333},"code",{"className":332},[],[334],{"type":23,"value":335},"salesforce_sandbox_1",{"type":17,"tag":61,"props":337,"children":338},{},[339],{"type":23,"value":340},"No, it's fixed when the connection is created",{"type":17,"tag":34,"props":342,"children":343},{},[344,352,357,362],{"type":17,"tag":61,"props":345,"children":346},{},[347],{"type":17,"tag":192,"props":348,"children":349},{},[350],{"type":23,"value":351},"Label",{"type":17,"tag":61,"props":353,"children":354},{},[355],{"type":23,"value":356},"What people see in the app",{"type":17,"tag":61,"props":358,"children":359},{},[360],{"type":23,"value":361},"Salesforce (EU sandbox)",{"type":17,"tag":61,"props":363,"children":364},{},[365],{"type":23,"value":366},"Yes",{"type":17,"tag":186,"props":368,"children":369},{},[370,372,378,380,386],{"type":23,"value":371},"The name is fixed because every query, model and tab that reads those tables refers to it. A name is lower snake case, starts with a letter, is at most 63 characters, and is unique in the workspace. The form suggests a free one: ",{"type":17,"tag":330,"props":373,"children":375},{"className":374},[],[376],{"type":23,"value":377},"salesforce",{"type":23,"value":379},", then ",{"type":17,"tag":330,"props":381,"children":383},{"className":382},[],[384],{"type":23,"value":385},"salesforce_2",{"type":23,"value":387},", and so on.",{"type":17,"tag":18,"props":389,"children":391},{"id":390},"how-tables-are-named",[392],{"type":23,"value":393},"How tables are named",{"type":17,"tag":186,"props":395,"children":396},{},[397,399,405],{"type":23,"value":398},"Tables are queried as ",{"type":17,"tag":330,"props":400,"children":402},{"className":401},[],[403],{"type":23,"value":404},"\u003Cconnection name>.\u003Ctable>",{"type":23,"value":406},":",{"type":17,"tag":408,"props":409,"children":413},"pre",{"className":410,"code":411,"language":412,"meta":8,"style":8},"language-sql shiki shiki-themes github-light github-dark","SELECT stagename, sum(amount)\nFROM salesforce.opportunity\nGROUP BY 1\n","sql",[414],{"type":17,"tag":330,"props":415,"children":416},{"__ignoreMap":8},[417,446,469],{"type":17,"tag":418,"props":419,"children":422},"span",{"class":420,"line":421},"line",1,[423,429,435,441],{"type":17,"tag":418,"props":424,"children":426},{"style":425},"--shiki-default:#D73A49;--shiki-dark:#F97583",[427],{"type":23,"value":428},"SELECT",{"type":17,"tag":418,"props":430,"children":432},{"style":431},"--shiki-default:#24292E;--shiki-dark:#E1E4E8",[433],{"type":23,"value":434}," stagename, ",{"type":17,"tag":418,"props":436,"children":438},{"style":437},"--shiki-default:#005CC5;--shiki-dark:#79B8FF",[439],{"type":23,"value":440},"sum",{"type":17,"tag":418,"props":442,"children":443},{"style":431},[444],{"type":23,"value":445},"(amount)\n",{"type":17,"tag":418,"props":447,"children":449},{"class":420,"line":448},2,[450,455,460,464],{"type":17,"tag":418,"props":451,"children":452},{"style":425},[453],{"type":23,"value":454},"FROM",{"type":17,"tag":418,"props":456,"children":457},{"style":437},[458],{"type":23,"value":459}," salesforce",{"type":17,"tag":418,"props":461,"children":462},{"style":431},[463],{"type":23,"value":206},{"type":17,"tag":418,"props":465,"children":466},{"style":437},[467],{"type":23,"value":468},"opportunity\n",{"type":17,"tag":418,"props":470,"children":472},{"class":420,"line":471},3,[473,478],{"type":17,"tag":418,"props":474,"children":475},{"style":425},[476],{"type":23,"value":477},"GROUP BY",{"type":17,"tag":418,"props":479,"children":480},{"style":437},[481],{"type":23,"value":482}," 1\n",{"type":17,"tag":186,"props":484,"children":485},{},[486,488,493,495,501,503,509],{"type":23,"value":487},"So a second Salesforce connection named ",{"type":17,"tag":330,"props":489,"children":491},{"className":490},[],[492],{"type":23,"value":335},{"type":23,"value":494}," lands its tables as ",{"type":17,"tag":330,"props":496,"children":498},{"className":497},[],[499],{"type":23,"value":500},"salesforce_sandbox_1.opportunity",{"type":23,"value":502},", beside the first connection's ",{"type":17,"tag":330,"props":504,"children":506},{"className":505},[],[507],{"type":23,"value":508},"salesforce.opportunity",{"type":23,"value":206},{"type":17,"tag":186,"props":511,"children":512},{},[513,515,521,523,529,531,537],{"type":23,"value":514},"Database tables outside the default schema keep their schema as a prefix: a Postgres table ",{"type":17,"tag":330,"props":516,"children":518},{"className":517},[],[519],{"type":23,"value":520},"sales.orders",{"type":23,"value":522}," in a connection named ",{"type":17,"tag":330,"props":524,"children":526},{"className":525},[],[527],{"type":23,"value":528},"warehouse",{"type":23,"value":530}," becomes ",{"type":17,"tag":330,"props":532,"children":534},{"className":533},[],[535],{"type":23,"value":536},"warehouse.sales_orders",{"type":23,"value":206},{"type":17,"tag":186,"props":539,"children":540},{},[541,543,549],{"type":23,"value":542},"Connections created before connection names existed keep their original flat table names, such as ",{"type":17,"tag":330,"props":544,"children":546},{"className":545},[],[547],{"type":23,"value":548},"salesforce_opportunity",{"type":23,"value":206},{"type":17,"tag":18,"props":551,"children":553},{"id":552},"credentials",[554],{"type":23,"value":555},"Credentials",{"type":17,"tag":186,"props":557,"children":558},{},[559,561,567,569,575],{"type":23,"value":560},"Connection credentials are encrypted when they're stored. They're never sent back to your browser, to an AI agent connected through the ",{"type":17,"tag":75,"props":562,"children":564},{"href":563},"\u002Fdocs\u002Fai-agents\u002Fclaude-connector",[565],{"type":23,"value":566},"Claude connector",{"type":23,"value":568},", or to Datachef support staff. See ",{"type":17,"tag":75,"props":570,"children":572},{"href":571},"\u002Fdocs\u002Fadministration\u002Fsecurity",[573],{"type":23,"value":574},"security",{"type":23,"value":206},{"type":17,"tag":18,"props":577,"children":579},{"id":578},"deleting-a-connection",[580],{"type":23,"value":581},"Deleting a connection",{"type":17,"tag":186,"props":583,"children":584},{},[585],{"type":23,"value":586},"Deleting a connection stops its syncs. The tables it already synced are kept.",{"type":17,"tag":588,"props":589,"children":590},"style",{},[591],{"type":23,"value":592},"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);}",{"title":8,"searchDepth":448,"depth":448,"links":594},[595,596,597,598,599,600],{"id":20,"depth":448,"text":24},{"id":209,"depth":448,"text":212},{"id":271,"depth":448,"text":274},{"id":390,"depth":448,"text":393},{"id":552,"depth":448,"text":555},{"id":578,"depth":448,"text":581},"markdown","content:docs:2.connections:1.overview.md","content","docs\u002F2.connections\u002F1.overview.md","docs\u002F2.connections\u002F1.overview","md",[608],{"title":609,"_path":610,"children":611},"Welcome","\u002Fdocs",[612,613,621,632,648,655,663],{"title":609,"_path":610},{"title":614,"_path":615,"children":616},"Getting started","\u002Fdocs\u002Fgetting-started",[617,618],{"title":184,"_path":181},{"title":619,"_path":620},"Key concepts","\u002Fdocs\u002Fgetting-started\u002Fconcepts",{"title":622,"_path":623,"children":624},"Connecting data","\u002Fdocs\u002Fconnections",[625,626,628,629,630,631],{"title":12,"_path":5},{"title":627,"_path":246},"Sync settings",{"title":65,"_path":77},{"title":87,"_path":98},{"title":108,"_path":119},{"title":143,"_path":140},{"title":633,"_path":634,"children":635},"Analysis","\u002Fdocs\u002Fanalysis",[636,639,642,645],{"title":637,"_path":638},"Asking questions","\u002Fdocs\u002Fanalysis\u002Fask-a-question",{"title":640,"_path":641},"SQL editor","\u002Fdocs\u002Fanalysis\u002Fsql-editor",{"title":643,"_path":644},"Charts","\u002Fdocs\u002Fanalysis\u002Fcharts",{"title":646,"_path":647},"Tabs and sharing","\u002Fdocs\u002Fanalysis\u002Ftabs-and-sharing",{"title":649,"_path":650,"children":651},"Models","\u002Fdocs\u002Fmodels",[652],{"title":653,"_path":654},"Working with models","\u002Fdocs\u002Fmodels\u002Foverview",{"title":656,"_path":657,"children":658},"AI agents","\u002Fdocs\u002Fai-agents",[659,660],{"title":566,"_path":563},{"title":661,"_path":662},"Tools","\u002Fdocs\u002Fai-agents\u002Ftools",{"title":664,"_path":665,"children":666},"Administration","\u002Fdocs\u002Fadministration",[667,670,673],{"title":668,"_path":669},"People and roles","\u002Fdocs\u002Fadministration\u002Fpeople-and-roles",{"title":671,"_path":672},"Sign-in and SSO","\u002Fdocs\u002Fadministration\u002Fsign-in-and-sso",{"title":674,"_path":571},"Security",[676,677],{"_path":620,"title":619},{"_path":246,"title":627},1792546942898]