<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
<title>quote → cash — Revenue Cloud field notes and guides</title>
<link href="https://quotetocash.pages.dev/en/"/>
<link rel="self" href="https://quotetocash.pages.dev/en/feed.xml"/>
<id>https://quotetocash.pages.dev/en/</id>
<updated>2026-10-05T00:00:00Z</updated>
<author><name>Nathan Altmann</name></author>
<entry>
<title>Procedure Plans: what to do when one pricing procedure is full</title>
<link href="https://quotetocash.pages.dev/en/implementation/procedure-plans/"/>
<id>https://quotetocash.pages.dev/en/implementation/procedure-plans/</id>
<updated>2026-10-05T00:00:00Z</updated>
<category term="Guide"/>
<summary>A pricing procedure has a ceiling. We hit it at 128 elements with another offer still to build. Here is what the ceiling actually is, why counting it is harder than it looks, and what splitting the procedure costs you.</summary>
</entry>
<entry>
<title>From order to invoice: where billing actually starts, and why it silently does not</title>
<link href="https://quotetocash.pages.dev/en/implementation/order-to-invoice/"/>
<id>https://quotetocash.pages.dev/en/implementation/order-to-invoice/</id>
<updated>2026-10-05T00:00:00Z</updated>
<category term="Guide"/>
<summary>Between an activated order and a posted invoice sit an orchestrator, a context definition, four org settings and a set of order-line fields nobody tells you are required. Each one fails without an error.</summary>
</entry>
<entry>
<title>A genuinely complex offer: tiered setup, adders, and twenty-one hardware variants</title>
<link href="https://quotetocash.pages.dev/en/implementation/complex-product-catalog/"/>
<id>https://quotetocash.pages.dev/en/implementation/complex-product-catalog/</id>
<updated>2026-10-05T00:00:00Z</updated>
<category term="Guide"/>
<summary>What it takes to model a managed-services offer where the setup fee steps at a headcount threshold, adders scale on a quantity that is not the seat count, and one bundle carries twenty-one appliance variants in three roles.</summary>
</entry>
<entry>
<title>Why a pricing procedure that works in one org returns nothing in the next</title>
<link href="https://quotetocash.pages.dev/en/field-notes/pricing-procedure-migration/"/>
<id>https://quotetocash.pages.dev/en/field-notes/pricing-procedure-migration/</id>
<updated>2026-10-05T00:00:00Z</updated>
<category term="Field note"/>
<summary>Pricing is not one artefact but five, and moving a subset produces a procedure that runs and prices nothing.</summary>
</entry>
<entry>
<title>The billing prerequisites that fail without an error</title>
<link href="https://quotetocash.pages.dev/en/field-notes/invisible-billing-prerequisites/"/>
<id>https://quotetocash.pages.dev/en/field-notes/invisible-billing-prerequisites/</id>
<updated>2026-10-05T00:00:00Z</updated>
<category term="Field note"/>
<summary>Four pieces of org configuration decide whether billing schedules exist at all. None of them reports anything when missing.</summary>
</entry>
<entry>
<title>Ledger assignment criteria are insert-only, and nothing warns you</title>
<link href="https://quotetocash.pages.dev/en/field-notes/insert-only-ledger-criteria/"/>
<id>https://quotetocash.pages.dev/en/field-notes/insert-only-ledger-criteria/</id>
<updated>2026-10-05T00:00:00Z</updated>
<category term="Field note"/>
<summary>A mistake in a ledger routing criterion is permanent. The object accepts field names that do not exist, and only tells you at posting.</summary>
</entry>
<entry>
<title>A flow criterion written in English fails silently on a localised org</title>
<link href="https://quotetocash.pages.dev/en/field-notes/localised-flow-criteria/"/>
<id>https://quotetocash.pages.dev/en/field-notes/localised-flow-criteria/</id>
<updated>2026-10-05T00:00:00Z</updated>
<category term="Field note"/>
<summary>Billing schedules were never created because a flow filtered on a status value that the org renders in another language.</summary>
</entry>
<entry>
<title>“No such column” when the column exists</title>
<link href="https://quotetocash.pages.dev/en/field-notes/api-version-no-such-column/"/>
<id>https://quotetocash.pages.dev/en/field-notes/api-version-no-such-column/</id>
<updated>2026-10-05T00:00:00Z</updated>
<category term="Field note"/>
<summary>An Apex class pinned to an older API version cannot see fields added in a later one — even through dynamic SOQL.</summary>
</entry>
<entry>
<title>Products created by API can behave differently from identical ones created in the UI</title>
<link href="https://quotetocash.pages.dev/en/field-notes/ui-versus-api-product-creation/"/>
<id>https://quotetocash.pages.dev/en/field-notes/ui-versus-api-product-creation/</id>
<updated>2026-10-05T00:00:00Z</updated>
<category term="Field note"/>
<summary>A bundle built by bulk API refused to open the configurator. A hand-built equivalent worked. The records looked the same.</summary>
</entry>
<entry>
<title>Bill-To driven taxation</title>
<link href="https://quotetocash.pages.dev/en/patterns/bill-to-driven-taxation/"/>
<id>https://quotetocash.pages.dev/en/patterns/bill-to-driven-taxation/</id>
<updated>2026-10-05T00:00:00Z</updated>
<category term="Pattern"/>
<summary>Make the tax rate follow the billing profile rather than the order address — and know why that is the correct reading of the model, not a workaround.</summary>
</entry>
<entry>
<title>Country-driven tax code, without Apex</title>
<link href="https://quotetocash.pages.dev/en/patterns/country-driven-tax-code/"/>
<id>https://quotetocash.pages.dev/en/patterns/country-driven-tax-code/</id>
<updated>2026-10-05T00:00:00Z</updated>
<category term="Pattern"/>
<summary>Vary the tax code — not just the rate — by customer country, using only configuration and a flow.</summary>
</entry>
<entry>
<title>The Apex tax engine adapter</title>
<link href="https://quotetocash.pages.dev/en/patterns/tax-engine-adapter/"/>
<id>https://quotetocash.pages.dev/en/patterns/tax-engine-adapter/</id>
<updated>2026-10-05T00:00:00Z</updated>
<category term="Pattern"/>
<summary>When the shipped engine returns nothing, what a working adapter actually has to implement — and the eight failures that stand between you and a taxed invoice.</summary>
</entry>
<entry>
<title>Routing invoice lines to the ledger</title>
<link href="https://quotetocash.pages.dev/en/patterns/ledger-routing/"/>
<id>https://quotetocash.pages.dev/en/patterns/ledger-routing/</id>
<updated>2026-10-05T00:00:00Z</updated>
<category term="Pattern"/>
<summary>Get invoice lines into the right accounting account when the invoice carries almost none of the information you need to route on.</summary>
</entry>
<entry>
<title>Included allowances and overage</title>
<link href="https://quotetocash.pages.dev/en/patterns/included-allowance-pricing/"/>
<id>https://quotetocash.pages.dev/en/patterns/included-allowance-pricing/</id>
<updated>2026-10-05T00:00:00Z</updated>
<category term="Pattern"/>
<summary>Express “the first N hours are included, beyond that you pay” natively — and find out why only one of your allowances applies.</summary>
</entry>
<entry>
<title>Scaling past the procedure ceiling</title>
<link href="https://quotetocash.pages.dev/en/patterns/procedure-plan-scaling/"/>
<id>https://quotetocash.pages.dev/en/patterns/procedure-plan-scaling/</id>
<updated>2026-10-05T00:00:00Z</updated>
<category term="Pattern"/>
<summary>What to do when one pricing procedure can no longer hold the logic of every offer.</summary>
</entry>
<entry>
<title>Document generation on the pricing context</title>
<link href="https://quotetocash.pages.dev/en/patterns/context-service-docgen/"/>
<id>https://quotetocash.pages.dev/en/patterns/context-service-docgen/</id>
<updated>2026-10-05T00:00:00Z</updated>
<category term="Pattern"/>
<summary>Generate a quote document without building a data-extraction layer, by reusing the context the pricing engine already uses.</summary>
</entry>
<entry>
<title>Keeping the ERP boundary clean</title>
<link href="https://quotetocash.pages.dev/en/patterns/erp-bridge/"/>
<id>https://quotetocash.pages.dev/en/patterns/erp-bridge/</id>
<updated>2026-10-05T00:00:00Z</updated>
<category term="Pattern"/>
<summary>Decide what Revenue Cloud owns and what the ERP owns, before the integration decides for you.</summary>
</entry>
</feed>