1"use strict";(globalThis.webpackChunkorki_docs=globalThis.webpackChunkorki_docs||[]).push([[4301],{6145(e,t,s){s.d(t,{R:()=>l,x:()=>d});var r=s(7140);const n={},i=r.createContext(n);function l(e){const t=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),r.createElement(i.Provider,{value:t},e.children)}},8404(e,t,s){s.r(t),s.d(t,{assets:()=>o,contentTitle:()=>d,default:()=>a,frontMatter:()=>l,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"customers/import","title":"Importing Customers","description":"Import customers in bulk using Excel files, or enter them manually in a table view. Orki intelligently merges data with existing customers to avoid duplicates.","source":"@site/docs/customers/import.md","sourceDirName":"customers","slug":"/customers/import","permalink":"/docs/customers/import","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":6,"frontMatter":{"sidebar_position":6},"sidebar":"tutorialSidebar","previous":{"title":"Customer Analytics","permalink":"/docs/customers/analytics"},"next":{"title":"Marketing","permalink":"/docs/category/marketing"}}');var n=s(5656),i=s(6145);const l={sidebar_position:6},d="Importing Customers",o={},c=[{value:"Accessing the Import Tool",id:"accessing-the-import-tool",level:2},{value:"Excel Import",id:"excel-import",level:2},{value:"Template Columns",id:"template-columns",level:3},{value:"Manual Table Entry",id:"manual-table-entry",level:2},{value:"Merge Behavior",id:"merge-behavior",level:2},{value:"Import Results",id:"import-results",level:2},{value:"Tips",id:"tips",level:2},{value:"Next Steps",id:"next-steps",level:2}];function h(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"importing-customers",children:"Importing Customers"})}),"\n",(0,n.jsx)(t.p,{children:"Import customers in bulk using Excel files, or enter them manually in a table view. Orki intelligently merges data with existing customers to avoid duplicates."}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h2,{id:"accessing-the-import-tool",children:"Accessing the Import Tool"}),"\n",(0,n.jsxs)(t.p,{children:["Navigate to ",(0,n.jsx)(t.strong,{children:"Customers"})," and click the ",(0,n.jsx)(t.strong,{children:"Add Customer"})," button to open the import interface."]}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h2,{id:"excel-import",children:"Excel Import"}),"\n",(0,n.jsx)(t.p,{children:"The fastest way to add customers in bulk:"}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["Click ",(0,n.jsx)(t.strong,{children:"Download Template"})," to get a correctly formatted file"]}),"\n",(0,n.jsx)(t.li,{children:"Fill in customer data in the template"}),"\n",(0,n.jsx)(t.li,{children:"Upload the completed file"}),"\n",(0,n.jsx)(t.li,{children:"Review the preview to verify your data looks correct"}),"\n",(0,n.jsx)(t.li,{children:"Confirm the import"}),"\n"]}),"\n",(0,n.jsx)(t.admonition,{title:"File requirements",type:"note",children:(0,n.jsxs)(t.p,{children:["Only Excel files (",(0,n.jsx)(t.code,{children:".xls"}),"/",(0,n.jsx)(t.code,{children:".xlsx"}),") are accepted \u2014 one file at a time, with a maximum size of ",(0,n.jsx)(t.strong,{children:"5 MB"}),"."]})}),"\n",(0,n.jsx)(t.h3,{id:"template-columns",children:"Template Columns"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Column"}),(0,n.jsx)(t.th,{style:{textAlign:"center"},children:"Required"}),(0,n.jsx)(t.th,{children:"Description"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.strong,{children:"WhatsApp Number"})}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"Yes"}),(0,n.jsx)(t.td,{children:"Customer's WhatsApp phone number (with country code)"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.strong,{children:"Name"})}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"No"}),(0,n.jsx)(t.td,{children:"Full name"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.strong,{children:"Email"})}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"No"}),(0,n.jsx)(t.td,{children:"Email address"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.strong,{children:"Tags"})}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"No"}),(0,n.jsxs)(t.td,{children:["Comma-separated tags (e.g., ",(0,n.jsx)(t.code,{children:"VIP, enterprise"}),")"]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.strong,{children:"Agent Instructions"})}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"No"}),(0,n.jsx)(t.td,{children:"Special instructions for the AI agent when chatting with this customer"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.strong,{children:"Custom Attributes"})}),(0,n.jsx)(t.td,{style:{textAlign:"center"},children:"No"}),(0,n.jsx)(t.td,{children:"Key-value pairs for custom data"})]})]})]}),"\n",(0,n.jsx)(t.admonition,{type:"warning",children:(0,n.jsxs)(t.p,{children:["Phone numbers ",(0,n.jsx)(t.strong,{children:"must include the country code"})," without the ",(0,n.jsx)(t.code,{children:"+"})," sign. For example, an Omani number should be ",(0,n.jsx)(t.code,{children:"96871234567"}),", not ",(0,n.jsx)(t.code,{children:"71234567"})," or ",(0,n.jsx)(t.code,{children:"+96871234567"}),"."]})}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h2,{id:"manual-table-entry",children:"Manual Table Entry"}),"\n",(0,n.jsx)(t.p,{children:"For adding a small number of customers without a file:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Add rows one at a time using the ",(0,n.jsx)(t.strong,{children:"Add Row"})," button"]}),"\n",(0,n.jsx)(t.li,{children:"Configure which columns are visible"}),"\n",(0,n.jsx)(t.li,{children:"Edit cells directly in the table"}),"\n",(0,n.jsx)(t.li,{children:"Submit when ready"}),"\n"]}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h2,{id:"merge-behavior",children:"Merge Behavior"}),"\n",(0,n.jsxs)(t.p,{children:["When importing customers, Orki matches existing customers by ",(0,n.jsx)(t.strong,{children:"WhatsApp number"})," and merges data intelligently:"]}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Field"}),(0,n.jsx)(t.th,{children:"Behavior"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.strong,{children:"WhatsApp Number"})}),(0,n.jsx)(t.td,{children:"Used as the unique identifier for matching"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.strong,{children:"Name"})}),(0,n.jsx)(t.td,{children:"Overwritten if a new value is provided"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.strong,{children:"Email"})}),(0,n.jsx)(t.td,{children:"Overwritten if a new value is provided"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.strong,{children:"Tags"})}),(0,n.jsxs)(t.td,{children:[(0,n.jsx)(t.strong,{children:"Unioned"})," \u2014 new tags are added, existing tags are kept"]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.strong,{children:"Custom Attributes"})}),(0,n.jsxs)(t.td,{children:[(0,n.jsx)(t.strong,{children:"Merged"})," \u2014 new keys are added, existing keys are updated with new values"]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.strong,{children:"Agent Instructions"})}),(0,n.jsx)(t.td,{children:"Overwritten if a new value is provided"})]})]})]}),"\n",(0,n.jsx)(t.p,{children:"No duplicate customers are created. If a WhatsApp number already exists, the existing customer is updated."}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h2,{id:"import-results",children:"Import Results"}
1),"\n",(0,n.jsx)(t.p,{children:"After the import completes, you'll see a summary:"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Result"}),(0,n.jsx)(t.th,{children:"Description"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.strong,{children:"Created"})}),(0,n.jsx)(t.td,{children:"Number of new customers added"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.strong,{children:"Merged"})}),(0,n.jsx)(t.td,{children:"Number of existing customers updated with new data"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.strong,{children:"Skipped"})}),(0,n.jsx)(t.td,{children:"Number of rows that could not be processed (with reasons)"})]})]})]}),"\n",(0,n.jsx)(t.p,{children:"Common skip reasons include invalid phone number format, missing required fields, or malformed data."}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h2,{id:"tips",children:"Tips"}),"\n",(0,n.jsx)(t.admonition,{type:"tip",children:(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Test with a small file first"})," \u2014 upload 5-10 rows to verify your formatting is correct before importing your full customer list."]})}),"\n",(0,n.jsx)(t.admonition,{type:"tip",children:(0,n.jsxs)(t.p,{children:["Use the ",(0,n.jsx)(t.strong,{children:"Download Template"})," button every time. The template ensures your columns are in the correct order and format, reducing import errors."]})}),"\n",(0,n.jsx)(t.admonition,{type:"note",children:(0,n.jsx)(t.p,{children:'Tags in the import file are additive. If a customer already has the tag "VIP" and your file includes the tag "enterprise", the customer will end up with both tags.'})}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h2,{id:"next-steps",children:"Next Steps"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["See ",(0,n.jsx)(t.a,{href:"./overview",children:"Customer Overview"})," for managing your imported customers"]}),"\n",(0,n.jsxs)(t.li,{children:["Set up ",(0,n.jsx)(t.a,{href:"./attributes",children:"Custom Attributes"})," before importing if you want to include attribute data in your file"]}),"\n"]})]})}function a(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}}}]);
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.