Nobody is told when a run fails
The batch ran, half of it errored, and the only record is a log nobody reads. The failure surfaces weeks later as a customer complaint rather than as an alert.
A document that only exists when somebody remembers to produce it is not an automated process. Twopir Consulting designs Conga generation that fires from a record change, runs on a schedule, or processes a whole population at once — inside the platform limits that actually bind. Including what happens when a run fails at two in the morning.
Trusted by 500+ organizations — including teams running scheduled statement, renewal and reminder cycles that nobody has to remember to start.












Automation Coverage
A manual process that breaks has somebody standing there. An automated one that breaks has nobody, until a customer asks where their statement is. These six are the usual causes.
The batch ran, half of it errored, and the only record is a log nobody reads. The failure surfaces weeks later as a customer complaint rather than as an alert.
API request allocations, outbound email caps and Conga's own workflow transaction limits all bind. A design that works for fifty records stops at five thousand, at month-end.
A condition set on a field that updates during a data load, so an import produces ten thousand documents and ten thousand emails before anybody notices.
A Flow and a Conga Trigger both respond to the same change. Two documents get produced, or one gets produced twice, and untangling which fired first takes a day.
Automating a process nobody had mapped just makes the wrong thing happen faster, and without a person in the loop the error rate stops being visible.
Four hundred statements were expected and three hundred and eighty-two were produced. Without a reconciliation step, the missing eighteen are invisible.
Conga automation is the work of removing the human button-click: Conga Trigger fires generation from Salesforce automation when conditions are met, and Conga Batch produces and schedules documents in bulk. Choosing between them — and knowing when not to automate at all — is the design decision.
| Pattern | Use it when | What it demands |
|---|---|---|
| Conga Trigger | The document should exist the moment something happens — final paperwork when an opportunity closes, a welcome pack on activation. | A precisely specified firing condition. The usual failure is a condition broad enough to fire during a data import. |
| Conga Batch | Many documents for many records, on a schedule or on demand — statements, renewal notices, reminders. | Volume planning against platform limits, plus reconciliation so a partial run is visible. |
| Button, background mode on | A person genuinely should decide whether and when — but should not be choosing templates or formats. | Nothing beyond configuration. Often the right answer, and the one most often skipped over. |
| Leave it manual | Low volume, high judgement, or a process nobody has mapped yet. | Honesty. Automating an unmapped process makes the wrong thing happen faster and less visibly. |
The ceiling nobody plans for
Every unattended pattern runs under a set of platform limits: Salesforce API request allocations, the number of outbound emails permitted for your edition, and Conga's own documented limits on workflow transactions. They interact, and they bind sooner than most teams expect.
Volume planning is therefore part of the design, not a thing you discover at month-end. We size against your projected peak — not your current average — and re-verify the current published limits at implementation time, because they change.
The build is rarely the hard part. Designing what happens when it does not work is where the engineering time goes, and it is what separates automation you can trust from automation you have to watch.
Conga Trigger wired to Salesforce automation, with firing conditions specified tightly enough that a data import does not produce ten thousand documents.
Conga Batch configured for the population and the cadence, with runs sized against real volume rather than against the sample used in testing.
Hiding the interface entirely so the administrator's choices apply every time. The cheapest consistency win available, and the most commonly left switched off.
Automation that continues past generation: routed for approval, sent for signature, and progressed when the counterparty acts rather than when somebody checks.
Every run accounting for itself: what was produced, what was not, and who needs to know. This is what makes an unattended process trustworthy.
Sizing the design against your projected peak, across the several limits that interact, with the current published figures re-verified at implementation time.
Both tools automate. They are not alternatives and they are not interchangeable, and overlapping them carelessly is one of the most common causes of duplicate documents.
Deciding that something should happen, updating records, routing approvals, orchestrating the steps around the document. This is Flow territory and it should stay there.
Gathering the data, merging it into a template, producing the file, and routing it for signature or storage. Rebuilding that in Flow is possible and almost never worth it.
The rule that prevents duplicates: each event has exactly one thing responding to it. A Flow and a Conga Trigger both watching the same field change is the classic way to produce two documents.
Before introducing new automation, we map what already responds to the events in question. In an org of any age, that map usually contains surprises.
The question we design every unattended run against
Not whether the automation works — it will, on the day it is built. Whether a partial failure at two in the morning reaches a named person before it reaches a customer, and whether anyone can tell that four hundred documents were expected and three hundred and eighty-two were produced.
If the answer is a log file nobody reads, the automation is not finished. That is a concrete standard, and it is why logging and reconciliation are scoped in rather than offered as an enhancement.
Talk through your runConga on Salesforce · Twopir Consulting engagement
A legal team producing client-facing documents by hand from Salesforce data, with no reliable record of which version went out. Generated output was written back to the matter record with its delivery logged — which is the same discipline this page argues for, applied to an on-demand process.
The logging is what makes automation safe to extend. Once every run accounts for itself, moving a process from a button to a trigger stops being a leap of faith.
Read the full case studyWe help growing and mid-market companies solve complex CRM, integration, and business system challenges, and we work with enterprise organizations facing the same problems at larger scale.
What happens on a partial run, a missing field, an unavailable system. Each gets a stated behaviour and a test, because the alternative is finding out during a busy quarter-end.
Platform limits interact and they bind sooner than teams expect. We size against projected peak rather than current average, and re-verify current published limits at build time.
Before adding a trigger we map everything already responding to that event. In an org of any age this is where duplicate-document problems are found and prevented.
A process nobody has mapped, or one that genuinely needs judgement, gets worse when automated — the errors continue and the visibility disappears. Sometimes the right advice is a button.
Salesforce owns the process, Conga owns the artefact, and every event has exactly one owner. Our work sits inside a Salesforce practice, so both halves get designed together.
Conga Trigger connects generation to Salesforce automation, so a document is produced when a record meets a condition — the standard example being final paperwork generated when an opportunity is marked Closed Won. Conga Batch works from the other direction: it produces documents for many records at once from a grid-style interface, and runs can be scheduled for a future date and time, which suits statements, renewal notices and reminders. Trigger is about timing relative to an event; Batch is about volume and cadence. Many organizations use both for different processes.
Several, and they interact. Your Salesforce edition has an API request allocation and a cap on outbound emails, and Conga documents its own limits on workflow transactions over a rolling period. A design that is comfortable at fifty records can hit one of these at five thousand, which is why sizing against projected peak rather than current average matters. We deliberately do not publish specific figures here because they change — we re-verify the current published limits against Conga and Salesforce documentation at implementation time and design the headroom from those.
By narrowing the firing condition and by guarding the path explicitly. The usual cause is a condition defined on a field that also gets touched by bulk operations — a stage field updated during a migration, or a checkbox set by a nightly job — so the trigger fires legitimately, thousands of times. Fixes include conditioning on a transition rather than a value, excluding a specific integration user, gating on a control flag that imports do not set, and testing against a simulated load before go-live rather than after. This is one of the specific things we test for.
Both, in their own lanes. Salesforce automation should own the process — deciding that something should happen, updating records, routing approvals, orchestrating the surrounding steps. Conga should own the artefact — gathering data, merging it into a template, producing the file and routing it onward. The rule that matters more than either is that every event has exactly one thing responding to it. A Flow and a Conga Trigger both watching the same field change is the most common way to end up producing a document twice.
Only if you design reconciliation in, which is the single most-skipped part of automating document runs. The design needs three things: activity logging so each produced document is recorded against its source record, a reconciliation step comparing how many records were expected to qualify against how many actually produced output, and alerting that reaches a named person rather than a log file. Without the middle one a partial failure is invisible — four hundred statements expected, three hundred and eighty-two produced, and nothing anywhere says so.
Yes. A process nobody has mapped should not be automated, because automation makes the existing error rate faster and much less visible — the person who used to notice the anomaly is no longer in the loop. Low-volume work requiring genuine judgement is usually better left as a button with background mode switched on, which removes the inconsistency without removing the decision. And anything where producing the wrong document has serious consequences deserves a person in the loop until the process has proven itself. We would rather recommend a button than automate something that is not ready.
Describe the document run that depends on a person remembering. We will tell you which pattern fits, what volume planning it needs, and what the failure handling has to look like before you could safely leave it unattended.
Serving: US | Canada | UK | UAE | Australia | New Zealand