Contract lifecycle actions

Pinion drives the contract lifecycle from five quick actions on the Contract record:

ActionWhat it does
Amend ContractCreates an amendment opportunity from the contract’s subscriptions.
Renew ContractCreates a renewal opportunity from the contract’s subscriptions.
Renew EarlyDeletes the linked renewal opportunity and rebuilds it as a new one starting today.
Extend ContractSets the contract’s Extension Expiration Date a number of months past its current end (the standard End Date is unchanged) and, if a renewal is linked, rebuilds it from that date.
Cancel ContractCancels the contract and marks its subscriptions Cancelled, with a prorated credit.

All five are installed with the package and are already placed on the packaged CPQ Contract Layout. Nothing needs to be dragged onto a layout.

The one Setup step: assign the layout

A Lightning record page’s highlights panel takes its action menu from the page layout assigned to the running user’s profile. Installing a layout does not assign it, and a managed package cannot assign one for you — profile-to-layout mapping is your org’s configuration, not the package’s. So until you assign it, your users keep the stock Contract Layout and its action menu offers only New Lead, Edit, Delete, Clone, Change Owner and Printable View.

To assign it:

  1. Setup → Object Manager → Contract → Page Layouts.
  2. Click Page Layout Assignment, then Edit Assignment.
  3. Select the profiles whose users work contracts — at minimum System Administrator and whichever profile your Pinion users hold.
  4. Set Page Layout To Use to CPQ Contract Layout, then Save.

Opportunity and Quote: activate the Pinion record pages

Reps launch the configurator with the Configure Products action on an Opportunity or a Quote. Pinion ships it already placed: the packaged Pinion Opportunity Record Page and Pinion Quote Record Page carry Configure Products in the highlights panel, beside Edit, Delete and the other standard actions. Those pages use dynamic actions, so their action menu comes from the page itself rather than from a page layout.

A managed package cannot activate a Lightning record page for you, so this is a second one-time step after install:

  1. Setup → Object Manager → Opportunity → Lightning Record Pages, click Pinion Opportunity Record Page, then View.
  2. In Lightning App Builder, click Activation and assign it as the Org Default, an App Default for the apps your reps use, or by App, Record Type, and Profile. Pick the Desktop form factor and Save.
  3. Repeat for Quote with the Pinion Quote Record Page.

An app-level or profile-level assignment takes precedence over the org default, so if reps still see another page after you set the org default, add an assignment for their app.

Without one of these steps a rep has no way into the configurator from the record, so treat it as part of the install, the same as the Contract layout assignment above. The install walkthrough covers the same step in Installing Pinion.

Checking it worked

Open any Contract record. The five actions appear in the highlights panel action menu (some may sit under the overflow arrow, depending on your screen width). If they do not, the profile of the user you are signed in as is still mapped to a different layout — repeat the assignment for that profile.

For Opportunity and Quote, sign in as a user with the Pinion User permission set, open an Opportunity and a Quote, and confirm Configure Products is in the action menu and opens the configurator. If it is missing, that user’s app or profile is still assigned a different record page, or your own page does not include the action.

What Cancel Contract does

Cancel Contract asks for a cancellation date and a reason, shows the prorated credit, and on confirm does all of the following in one step. Either every change lands or none does; if any part is refused, the rep sees the error and nothing is saved.

  • Creates a Cancellation Opportunity (Type Cancellation, stage Closed Lost) whose Amount is the negative credit, linked back to the contract.
  • Sets the contract’s Lifecycle to Cancelled and stamps its Cancellation Date, Cancellation Credit Amount and Cancellation Opportunity fields.
  • Marks every installed subscription Cancelled. The subscription records are kept, with their contracted quantities and prices unchanged, and their Change Date is set to the cancellation date. Subscriptions an earlier amendment already terminated keep that status.
  • Leaves assets alone. One-time (non-subscription) products are delivered purchases recorded as standard Assets; there is nothing to cancel on them.

How the credit is calculated

The credit covers the unused remainder of the subscriptions only:

credit = subscription lines booked on the source deal × remaining days ÷ term days

One-time products were delivered in full when the deal closed, so they are neither credited nor prorated. A contract whose deal carried only one-time products cancels with a credit of $0 and is still marked Cancelled. A cancellation dated on or before the contract start credits the full subscription total; one dated on or after the contract end credits nothing.

A cancelled contract no longer auto-renews, is skipped by Mass Renewal, shows as Cancelled in the renewal forecast, and is listed under prior contracts on the account. Running Cancel Contract again on the same contract changes nothing.

Permissions

Assigning the layout controls visibility. What a user can actually do with these actions is governed by their Pinion persona and permission sets: creating amendment and renewal opportunities needs Opportunity and Opportunity Product create access, which the RevOps Manager and Account Manager personas grant without consuming a paid seat. Pinion lays the carried products and prices down for them; editing those lines afterwards in the configurator still needs a Pinion User seat. See Personas & Permission Sets.

Extend Contract and Renew Early: Account Manager and administrator actions

Extend Contract and Renew Early are reserved for the Pinion Account Manager and Pinion Administrator permission sets. Both sets grant everything the two actions need. Any other user who opens either action sees the reason in place of the form, with the confirm button disabled, and the server refuses the action if it is submitted anyway:

  • “Extend Contract requires the Pinion Account Manager or Pinion Administrator permission set.”
  • “Renew Early requires the Pinion Account Manager or Pinion Administrator permission set.”

This holds even when a user’s profile grants Contract Edit and Opportunity Delete, so Pinion RevOps Manager cannot run either action. A RevOps Manager sees the reason on the Contract record, where it replaces the form when the action opens, and nothing changes. The server gives the same message if the action is submitted anyway. The Account Manager app is not a RevOps Manager screen: it belongs to Pinion Account Manager, Pinion User and Pinion Administrator, and a RevOps Manager who opens it sees “This page isn’t available with your permission set” on each tab. A user who holds the RevOps Manager set and the Account Manager set can run both actions and use the app, because the Account Manager set grants it.

On top of that rule, each action checks the signed-in user’s own access before it changes anything:

ActionNeeds
Renew EarlyOpportunity Delete and Create, plus what Renew Contract needs. It deletes the contract’s linked renewal opportunity (and its products) and creates a new one starting today, so the old record ID is gone. A contract with no linked renewal opportunity is refused with “No renewal opportunity is linked to this contract.”
Extend ContractContract Edit, edit access to the contract’s Extension Expiration Date field, read access to its End Date, and edit access to that contract record. When a renewal opportunity is linked, also Opportunity Delete and Create plus what Renew Contract needs, because Extend deletes that renewal and creates a new one starting at the new extension date. Without a linked renewal it only updates the contract.
Cancel ContractContract Edit, with edit access to the contract’s cancellation fields (Cancellation Date, Cancellation Credit Amount, Cancellation Opportunity), plus Opportunity Create and Edit for the cancellation opportunity. Pinion updates the contract’s Lifecycle and its subscriptions itself.

A permitted user without Opportunity Delete who runs Renew Early, or Extend on a contract with a renewal, sees “You do not have permission to delete the linked renewal opportunity.” Either action is all or nothing: if any step is refused or fails, the contract, its extension date and its renewal opportunity are left exactly as they were.

Which renewal Extend and Renew Early may delete

The renewal opportunity is usually owned by whoever closed the original deal, not by the account manager extending the contract. Salesforce only lets a record’s owner (or someone above them in the role hierarchy, or a user with Modify All Data) delete it, so a plain delete would fail for exactly the people these actions are for. Rather than ask you to grant Modify All on Opportunity, which would let a free persona delete any deal in your org, Pinion deletes the one renewal itself, and only when all of these are true:

  • the user passed the permission-set rule and holds Opportunity Delete and Create;
  • the user can see the contract;
  • the opportunity is the one the contract lists as its renewal, and it points back to that contract;
  • the renewal is still open.

A closed renewal is never deleted on someone else’s behalf: only a user who could delete it by hand can remove it, and anyone else is refused with nothing changed. A renewal that no longer points back to the contract is refused with “The linked renewal opportunity does not belong to this contract, so Pinion will not delete it.” The rebuilt renewal is owned by the user who ran the action.

Why Extend writes the extension date for the user

Salesforce locks an activated contract against edits by anyone without the org-wide Activate Contracts permission, even a user with Contract Edit and edit access to the record. That permission also lets its holder activate any contract and requires Order access, which is far more than moving one date. So Extend checks that the user has Contract Edit, edit access to the Extension Expiration Date field and edit access to that contract, and then writes the Extension Expiration Date itself. No other field on the contract is changed.