{"id":9439,"date":"2025-10-09T14:20:54","date_gmt":"2025-10-09T14:20:54","guid":{"rendered":"https:\/\/www.process.st\/help\/?post_type=ht_kb&#038;p=9439"},"modified":"2026-05-13T09:11:11","modified_gmt":"2026-05-13T09:11:11","slug":"uploading-files-data-sets-csv","status":"publish","type":"ht_kb","link":"https:\/\/www.process.st\/help\/docs\/uploading-files-data-sets-csv\/","title":{"rendered":"How to Sync External Data sources with Data Sets"},"content":{"rendered":"<p data-start=\"356\" data-end=\"696\">Keeping your data synchronized across systems ensures your workflows always run on accurate, up-to-date information.<\/p>\n<p data-start=\"356\" data-end=\"696\">With Process Street\u2019s <a href=\"https:\/\/www.process.st\/help\/docs\/data-sets\/\">Data Sets<\/a> and <a href=\"https:\/\/public-api.process.st\/api\/v1.1\/docs\/index.html#operation\/importDataSetRecords\">CSV Import API<\/a>, you can seamlessly connect your external data source (like CRMs, ERPs, HR tools, or databases) to update your information inside Process Street automatically.<\/p>\n<p data-start=\"698\" data-end=\"929\">This means no more manual uploads, out-of-date records, or missing context. Your workflows can stay aligned with the latest customer data, employee details, project information, or compliance records from the tools you already use.<\/p>\n<p data-start=\"931\" data-end=\"1327\">You can schedule these updates to happen automatically using a <a href=\"https:\/\/www.process.st\/help\/docs\/code-task\/\">Code Task<\/a> and <a href=\"https:\/\/www.process.st\/help\/docs\/scheduled-workflow-runs\/\">Scheduled Workflow Runs<\/a>.<\/p>\n<p data-start=\"931\" data-end=\"1327\">This allows you to fetch new data, generate a CSV file, and import it into your Data Set on a regular cadence; daily, weekly, or as often as your business requires. The result is a fully automated refresh cycle that ensures the latest information always powers your workflows.<\/p>\n<h2 data-start=\"1334\" data-end=\"1366\">Importing CSVs into Data Sets<\/h2>\n<h3 data-start=\"1368\" data-end=\"1384\">What it does<\/h3>\n<p data-start=\"1386\" data-end=\"1481\">You can import records into an existing Data Set from a CSV file using one of three strategies:<\/p>\n<ul data-start=\"1483\" data-end=\"1741\">\n<li data-start=\"1483\" data-end=\"1562\">\n<p data-start=\"1485\" data-end=\"1562\"><strong data-start=\"1485\" data-end=\"1496\">Append:<\/strong> Adds new rows only and does not change or remove existing data.<\/p>\n<\/li>\n<li data-start=\"1563\" data-end=\"1656\">\n<p data-start=\"1565\" data-end=\"1656\"><strong data-start=\"1565\" data-end=\"1576\">Upsert:<\/strong> Updates a row if the key matches, otherwise creates a new one (no deletions).<\/p>\n<\/li>\n<li data-start=\"1657\" data-end=\"1741\">\n<p data-start=\"1659\" data-end=\"1741\"><strong data-start=\"1659\" data-end=\"1668\">Sync:<\/strong> Performs an upsert and removes rows that do not exist in the CSV file.<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"1743\" data-end=\"1836\">For <strong data-start=\"1747\" data-end=\"1757\">Upsert<\/strong> and <strong data-start=\"1762\" data-end=\"1770\">Sync<\/strong>, a key column must be defined to determine whether a row matches.<\/p>\n<h2 data-start=\"3051\" data-end=\"3069\">Why it\u2019s useful<\/h2>\n<ul data-start=\"3071\" data-end=\"3341\">\n<li data-start=\"3071\" data-end=\"3134\">\n<p data-start=\"3073\" data-end=\"3134\">Keep external data sources synchronized with Process Street<\/p>\n<\/li>\n<li data-start=\"3135\" data-end=\"3181\">\n<p data-start=\"3137\" data-end=\"3181\">Automate daily or scheduled data refreshes<\/p>\n<\/li>\n<li data-start=\"3182\" data-end=\"3251\">\n<p data-start=\"3184\" data-end=\"3251\">Maintain accurate, current information across dependent workflows<\/p>\n<\/li>\n<li data-start=\"3252\" data-end=\"3341\">\n<p data-start=\"3254\" data-end=\"3341\">Support reporting, dashboards, and compliance tracking with clean, up-to-date records<\/p>\n<\/li>\n<\/ul>\n<h2 data-start=\"1843\" data-end=\"1873\">Recommendations by Use Case<\/h2>\n<p data-start=\"1875\" data-end=\"2334\"><strong data-start=\"1875\" data-end=\"1968\">If your data changes frequently and workflows need the most recent information, use Sync.<\/strong><\/p>\n<p data-start=\"1875\" data-end=\"2334\">This ensures the Data Set matches your external source exactly by updating existing rows, adding new ones, and removing outdated records.<\/p>\n<p data-start=\"1875\" data-end=\"2334\">It&#8217;s ideal for systems that refresh daily, such as real estate listings, inventory databases, or dynamic sales pipelines.<\/p>\n<p data-start=\"1875\" data-end=\"2334\">Combine this with a <a href=\"https:\/\/www.process.st\/help\/docs\/scheduled-workflow-runs\/\">Scheduled Workflow Run<\/a> to automatically refresh your Data Set every day or week.<\/p>\n<p data-start=\"2336\" data-end=\"2737\"><strong data-start=\"2336\" data-end=\"2431\">If you maintain ongoing records and never want to delete historical data, use Upsert.<\/strong><\/p>\n<p data-start=\"2336\" data-end=\"2737\">It updates matching rows while preserving everything else.<\/p>\n<p data-start=\"2336\" data-end=\"2737\">This is perfect for HR data, customer lists, or partner directories where you want to retain older entries but refresh key details.<\/p>\n<p data-start=\"2336\" data-end=\"2737\">Use a <a href=\"https:\/\/www.process.st\/help\/docs\/code-task\/\">Code Task<\/a> to generate your CSV and a <a href=\"https:\/\/www.process.st\/help\/docs\/scheduled-workflow-runs\/\">Scheduled Workflow Run<\/a> to trigger the import at regular intervals.<\/p>\n<p data-start=\"2739\" data-end=\"3044\"><strong data-start=\"2739\" data-end=\"2833\">If you\u2019re periodically adding new information without modifying existing data, use Append.<\/strong><\/p>\n<p data-start=\"2739\" data-end=\"3044\">It\u2019s safest for systems that grow over time, such as audit logs, registrations, or lead captures.<\/p>\n<p data-start=\"2739\" data-end=\"3044\">Append imports can be triggered manually or <a href=\"https:\/\/www.process.st\/help\/docs\/scheduled-workflow-runs\/\">scheduled<\/a> through a recurring workflow for consistent updates.<\/p>\n<p data-start=\"3343\" data-end=\"3658\"><strong data-start=\"3343\" data-end=\"3355\">Example<\/strong><\/p>\n<p data-start=\"3343\" data-end=\"3658\">A real estate operations team uses Sync to refresh property data every morning.<\/p>\n<p data-start=\"3343\" data-end=\"3658\">A Scheduled Workflow Run automatically executes a Code Task that retrieves the latest listings, creates a CSV, and imports it to update the Data Set, ensuring every workflow references the most recent information.<\/p>\n<h2 data-start=\"3665\" data-end=\"3680\">How it works<\/h2>\n<ol data-start=\"3682\" data-end=\"4155\">\n<li data-start=\"3682\" data-end=\"3781\">\n<p data-start=\"3685\" data-end=\"3781\">Export your data as a <code data-start=\"3707\" data-end=\"3713\">.csv<\/code> file from your source system (Salesforce, SQL, or Google Sheets).<\/p>\n<\/li>\n<li data-start=\"3782\" data-end=\"3899\">\n<p data-start=\"3785\" data-end=\"3899\">Use the <a href=\"https:\/\/public-api.process.st\/api\/v1.1\/docs\/index.html#operation\/importDataSetRecords\">CSV Import API<\/a>\u00a0to upload your file and choose the correct import strategy (Append, Upsert, or Sync).<\/p>\n<\/li>\n<li data-start=\"3900\" data-end=\"4024\">\n<p data-start=\"3903\" data-end=\"4024\">Optionally, set up a <a href=\"https:\/\/www.process.st\/help\/docs\/code-task\/\">Code Task<\/a> in your workflow to generate or fetch the CSV automatically from your source system.<\/p>\n<\/li>\n<li data-start=\"4025\" data-end=\"4155\">\n<p data-start=\"4028\" data-end=\"4155\">Use <a href=\"https:\/\/www.process.st\/help\/docs\/scheduled-workflow-runs\/\">Scheduled Workflow Runs<\/a> to trigger the workflow regularly (e.g., every 24 hours) for continuous data synchronization.<\/p>\n<\/li>\n<\/ol>\n<p data-start=\"4157\" data-end=\"4247\">All column names must be unique and match between the CSV and Data Set (case-insensitive).<\/p>\n<h2 data-start=\"4254\" data-end=\"4268\">Limitations<\/h2>\n<ul data-start=\"4270\" data-end=\"4603\">\n<li data-start=\"4270\" data-end=\"4298\">\n<p data-start=\"4272\" data-end=\"4298\">Maximum file size: 20 MB<\/p>\n<\/li>\n<li data-start=\"4299\" data-end=\"4360\">\n<p data-start=\"4301\" data-end=\"4360\">Available via the Public API<\/p>\n<\/li>\n<li data-start=\"4361\" data-end=\"4447\">\n<p data-start=\"4363\" data-end=\"4447\">Key column must be of type &#8220;Text&#8221; for Upsert and Sync<\/p>\n<\/li>\n<li data-start=\"4448\" data-end=\"4530\">\n<p data-start=\"4450\" data-end=\"4530\">If multiple rows share the same key, one matching row will be updated randomly<\/p>\n<\/li>\n<li data-start=\"4531\" data-end=\"4603\">\n<p data-start=\"4533\" data-end=\"4603\">All column names must be unique; name matching is not case-sensitive<\/p>\n<\/li>\n<\/ul>\n<h2 data-start=\"4842\" data-end=\"4868\">Automating Data Uploads<\/h2>\n<p data-start=\"4870\" data-end=\"5064\">You can connect file uploads and CSV imports to automation tools such as Make.com, Zapier, or Power Automate, or run them natively through Scheduled Workflows and Code Tasks.<\/p>\n<p data-start=\"5066\" data-end=\"5414\"><strong data-start=\"5066\" data-end=\"5089\">Example automation<\/strong><\/p>\n<ul>\n<li data-start=\"5066\" data-end=\"5414\">When a new contract is added in Salesforce, Make.com uploads it to Process Street using the <a href=\"https:\/\/public-api.process.st\/api\/v1.1\/docs\/index.html#operation\/uploadFormFieldValue\">File Upload API<\/a>.<\/li>\n<li data-start=\"5066\" data-end=\"5414\">The <a href=\"https:\/\/www.process.st\/help\/extract-text-file-uploads\/\">File Parser extracts<\/a> contract details.<\/li>\n<li data-start=\"5066\" data-end=\"5414\">Then, a Scheduled Workflow Run executes a Code Task that pulls updated contract data from Salesforce, generates a CSV, and imports it to the corresponding Data Set.<\/li>\n<\/ul>\n<p data-start=\"5416\" data-end=\"5515\">This approach keeps documents and data synchronized automatically, so there&#8217;s no manual maintenance required.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Keeping your data synchronized across systems ensures your workflows always run on accurate, up-to-date information. With Process Street\u2019s Data Sets and CSV Import API, you can seamlessly connect your external data source (like CRMs, ERPs, HR tools, or databases) to update your information inside Process Street automatically. This means no more manual uploads, out-of-date records, [&hellip;]<\/p>\n","protected":false},"author":11,"template":"","meta":{"_acf_changed":false,"available_plan":"","available_product":"","footnotes":""},"ht_kb_category":[194],"ht_kb_tag":[442,580],"class_list":["post-9439","ht_kb","type-ht_kb","status-publish","hentry","ht_kb_category-integrations","ht_kb_tag-api","ht_kb_tag-files"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.process.st\/help\/wp-json\/wp\/v2\/ht_kb\/9439","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.process.st\/help\/wp-json\/wp\/v2\/ht_kb"}],"about":[{"href":"https:\/\/www.process.st\/help\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/www.process.st\/help\/wp-json\/wp\/v2\/users\/11"}],"version-history":[{"count":7,"href":"https:\/\/www.process.st\/help\/wp-json\/wp\/v2\/ht_kb\/9439\/revisions"}],"predecessor-version":[{"id":9450,"href":"https:\/\/www.process.st\/help\/wp-json\/wp\/v2\/ht_kb\/9439\/revisions\/9450"}],"wp:attachment":[{"href":"https:\/\/www.process.st\/help\/wp-json\/wp\/v2\/media?parent=9439"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.process.st\/help\/wp-json\/wp\/v2\/ht_kb_category?post=9439"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.process.st\/help\/wp-json\/wp\/v2\/ht_kb_tag?post=9439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}