PolicifyAI
Dashboard

Bulk Policy Generation

Bulk generation lets you upload a CSV file and generate policies for up to 50 clients in a single batch. Each row in the CSV represents one client, and you can request multiple policy types per client in the same row.

CSV format

Download the template from Agency → Bulk Tools- it includes sample data and all supported columns. The CSV must be UTF-8 encoded.

Required columns

ColumnRequiredDescription
client_nameYesBusiness name for the generated policy - used as the brand name
domainNoClient website URL. Used in policy content
industryNoIndustry sector. Improves policy accuracy
jurisdictionYesISO country code or jurisdiction name (e.g. GB, US-CA, EU)
languageNoISO language code. Defaults to en
policy_typesNoComma-separated policy type slugs (e.g. privacy-policy,cookie-policy). Defaults to privacy-policy
business_typeNoLegal structure, e.g. limited-company, sole-trader

Example CSV

client_name,domain,industry,jurisdiction,language,policy_types,business_type
Acme Corp,acme.com,SaaS,GB,en,"privacy-policy,cookie-policy,terms-of-service",limited-company
Boutique Luxe,boutiqueluxe.fr,Retail,FR,fr,"privacy-policy,refund-policy",
Health First,healthfirst.com,Healthcare,US,en,"privacy-policy,hipaa-privacy-policy",
💡 You can request multiple policy types per client by separating them with commas inside the policy_types field (wrap the cell value in quotes in your CSV). Each type generates a separate policy document.

Running a bulk job

Go to Agency → Bulk Tools and upload your CSV. A preview shows the number of clients and total policies to be generated (e.g. “3 clients · 7 policies to generate”). Review the preview, then click Generate.

Progress is shown live - each row updates with a status indicator as it completes. Large batches may take several minutes.

Results CSV

When generation completes, download the Results CSV. It includes:

  • client_name- as provided
  • policy_type- each policy type as a separate row
  • status- success or failed
  • policy_url- direct link to the generated policy in your dashboard
  • error- error message if generation failed
  • generated_at- timestamp

Error handling

If a row fails (e.g. invalid jurisdiction code, network timeout), the other rows continue generating. Failed rows appear in the results CSV with an error description. Fix the issue and re-run just the failed rows - upload a new CSV with only those clients.

Limits

Up to 50 client rows per batch. Each row can have multiple policy types - the policy count shown in the preview reflects the total number of documents to generate across all rows. Generation still counts against your agency's pooled quota of 20 policies per client per month (see Agency plans) - a large batch can exhaust it.