Every export request starts the same way: someone asks for "this month's deals in a spreadsheet", a colleague opens the list, clicks export, sends the file. A week later the request repeats. A month later the file is missing the company field and a weekly cut is wanted too. The built-in export covers exactly one scenario — a person pressing a button — and everything else gets filled in by hand.
How do you export CRM data to Excel?
The export lives inside the list itself. Open a CRM section in List view, apply a filter (whatever survives the filter is exactly what gets exported), then use the settings gear in the top right and pick Excel or CSV. Excel is for analysis; CSV is the format to choose if the file is going back into another Bitrix24 (Alaio) account. The dialog offers checkboxes: all fields rather than just the visible columns, linked contact and company details, product line items, requisites. By default the file carries the columns you see in the table, and that set is configured in the list settings. The ID column is always exported, even when hidden.
Leads, deals, contacts, companies, invoices, quotes and smart process items all export this way; tasks have their own export in the task list. One detail trips people up: the export permission is granted separately from the view permission, and separately per entity. A sales rep who sees every deal may not see the export button at all — an access rights setting, not a bug.
Why is the built-in export not enough?
Three limits, each showing up in the second month. It is a manual action: no schedule, no event trigger, no "send it every Monday". It handles one entity at a time — deals with the linked-contacts checkbox give a flat table, but deals plus their tasks plus call history in one file is beyond it. And the file lands nowhere useful: downloaded, saved, forwarded. If the numbers are wanted in a shared spreadsheet, a BI dashboard or your own database, every cycle is manual work.
One more trap worth knowing before you count rows: with the product line item breakdown enabled, a deal occupies as many rows as it has products. Correct for sales analysis, misleading for counting deals.
How do you export automatically on an event?
Everything the manual export does on a click, a workflow can do on its own — it just delivers a row into a spreadsheet instead of a file into your downloads folder. The shape is the same whatever the destination: the Build JSON block packs the fields you need into one object, and the HTTP request block sends it to the receiving address. That receiver can be a Google Apps Script appending a row to a sheet, an n8n webhook, or an endpoint of your own database — Bitrix24 does not care which.
You pick the trigger: a deal moves to Won and a row lands in the sales sheet; a lead is created and a row lands in the intake sheet. Data stays current because it leaves at the moment of the event, not when someone remembers to click. If the receiver occasionally errors out, swap the plain request for the Reliable webhook block — it retries with a growing pause, so a five-minute outage on the far side does not silently cost you a row. Building and reading structures is covered in JSON in workflows.
How do you include linked data in the export?
This is the part the built-in export genuinely cannot do. The Get related entity field block pulls any field of a deal's company or contact into the deal itself: segment, city, industry, any custom field. Those values join the same JSON object and travel out as one row. How the links are wired is unpacked in linked deals and entities.
Two small habits that save time in the spreadsheet itself. Normalise dates with the Format date block — Excel and Google Sheets read YYYY-MM-DD with no locale guessing, whereas "28 August" will not sort. Collapse multi-value data — tags, products, assignees — with Join strings into a single cell separated by commas or line breaks, otherwise an array arrives in an unusable shape. Do the arithmetic — sums, percentages, differences — inside the workflow, so the sheet holds numbers rather than formulas.
How do you export the whole base, or on a schedule?
For a one-off sweep, use bulk workflow launch: one template — build JSON, send request — fired across a filter or a list of IDs, and the sheet fills without a single click in the list. The same trick backfills history when you switch the automatic export on today but need figures from the start of the year.
Recurrence comes in two shapes. A workflow can reschedule itself: after sending the data it takes a pause for the interval and repeats. The honest option for reporting is an outside scheduler — cron calls an inbound webhook on the account, which fires the bulk run. The schedule then lives where schedules belong, and Bitrix24 simply serves data on request; if that call behaves oddly, start with webhook troubleshooting.
What next
Start with the single event people ask about most: deal closed, row in the sheet. The Build JSON to HTTP request chain takes an evening, and the report stops depending on who is in the office. Then backfill history with a bulk launch and add the linked fields the manual file never had. The neighbouring blocks live in the robot catalog: conditions, string and date tools, calls to external services. And if the block you need is missing — describe the task: Roboteka builds missing activities for free and ships them to the shared library.