Nue Lifecycle Manager
The Nue Lifecycle Manager (formerly the Customer Lifecycle MCP) brings intelligence and control to the customer revenue lifecycle. Assistants can create opportunities, quotes, and orders, take a deal through approval, and manage a customer's subscriptions, invoices, and credit memos — from discovery and analysis through executing change orders.
It does not include billing tools — generating invoices, running billing schedules, and collecting payments belong to the Nue Billing & Collections MCP (coming soon). The Nue Lifecycle Manager works with the invoice and credit-memo records those processes produce.
It exposes a focused set of tools that let assistants answer transactional questions, produce narrative summaries grounded in live data, and carry out change-order operations with clear defaults and guarded confirmations.
Prerequisites — Licenses and Permissions
- Nue AI license is enabled on your tenant. Existing tenants do not have it by default — contact your Nue Account Executive to acquire it. See Configure Nue AI.
- A Nue API key issued for the right environment (Sandbox or Production). The Nue user role associated with that API key determines which tools and records the MCP can read or modify. Provision the key with the least-privilege role appropriate to the agent's job.
- For Salesforce-side use, the Nue user mapped to your Salesforce user must have the relevant AI functional permissions (e.g. AI → Customer Chatbot).
- The approvals tools carry their own license and permissions and are hidden from every role until an administrator grants them. See Approvals: licensing, permissions and tool visibility below.
What it covers
The Nue Lifecycle Manager exposes tools across the customer revenue lifecycle — opportunities, quotes, orders, approvals, subscriptions, invoices, credit memos, and product/pricing lookups. The catalog below is the complete current tool set.
Customers
Tool | What it does |
|---|---|
GetCustomers | Get one or more customers by ID |
PostCustomers | Create a customer |
PatchCustomersByCustomerid | Update a customer |
PostCustomersContacts | Create contacts on a customer |
GetCustomersTransactionhubdata | Get a customer's Transaction Hub data |
getCustomerHierarchy | Retrieve parent / child / billing-account hierarchy for a customer |
getCustomerAssets | List a customer's assets |
getCustomerEntitlements | List a customer's entitlements |
generateCustomerSummary | Produce an AI-generated narrative summary of a customer (uses your custom prompt if configured) |
Subscriptions
Tool | What it does |
|---|---|
getCustomerSubscriptions | List a customer's subscriptions; supports the "up for renewal" view via an optional renewalDate parameter |
getCustomerSubscriptionsToday | Snapshot intelligence — as-of subscriptions and upcoming changes |
getSubscriptionsUpForRenewal | List subscriptions due for renewal within a window |
fetchCustomersUpForRenewal | Find customers whose subscriptions are up for renewal |
fetchCustomersWithProduct | Find customers who own a specific product |
getSubscriptionProductRelationships | Inspect product relationships on a subscription |
generateProductRelationSummary | AI-generated summary of subscription/product relationships |
Quotes and Orders
Tool | What it does |
|---|---|
createNewQuote | Create a new business quote (preview or commit) |
createOpportunity | Create an opportunity for a customer |
queryOpportunities | Query open / closed opportunities for an account |
updateOpportunity | Update opportunity fields |
updateQuote | Update a quote header |
createChangeQuote | Create a change quote for a lifecycle change (renewal, term change, quantity, cancel, etc.) |
createChangeOrder | Create a change order directly |
getCustomerQuotes | List a customer's quotes |
generateQuoteSummary | AI-generated narrative summary of a quote (uses your custom prompt) |
generateOrderSummary | AI-generated narrative summary of an order (uses your custom prompt) |
generateQuoteDocument | Generate a quote PDF |
generateOrderDocument | Generate an order PDF |
getQuoteTemplates | List available quote templates |
getOrderTemplates | List available order templates |
cloneQuote | Duplicate any quote — line items, applied line price tags and tiers — into a new Draft quote |
createQuoteFromTemplate | Start a new quote on an opportunity from a template quote, in one call |
copyQuoteFromTemplate | Copy a template quote's lines and price tags onto an existing quote |
finalizeQuoteToOrder | Convert accepted quotes into orders, optionally activating them |
activateOrder | Activate a draft order, provisioning subscriptions, assets and entitlements |
cancelOrder | Cancel an activated order, unwinding what it provisioned |
Cloning, templates, and finishing the order
Six tools close the loop between a quote and live revenue. Four behaviours decide what a correct answer looks like:
- A clone is a copy; a template is a shape. cloneQuote stays on the source's account, so its pricing, negotiated discounts and tax are copied across unchanged. createQuoteFromTemplate and copyQuoteFromTemplate always reprice the result against the target's own account, so a discount whose tier depends on the customer (headcount, volume, segment) re-resolves to that customer's band. Expect the money to differ from the template whenever the two accounts resolve differently — that is the design, not a defect.
- Header custom fields are not inherited from a template. A template supplies line items, not header values. createQuoteFromTemplate accepts them in customFields instead. Line-level custom fields do copy.
- copyQuoteFromTemplate is not idempotent for a target you assembled yourself. It returns skipped: true with lineItemsCopied: 0 only when the target records this same template — which only quotes created by createQuoteFromTemplate do. Any other target is refused with a conflict on a second copy. Always report which of the two happened.
- Two irreversible actions are gated. finalizeQuoteToOrder defaults to a Draft order and requires confirm: true before it will activate; asking to activate without confirming returns mode: "preview" and writes nothing. cancelOrder and activateOrder likewise write nothing unless commit is true, and a cancel preview lists the subscriptions, assets and entitlements the cancel would unwind.
Activation is synchronous but provisioning is not — subscriptions appear shortly after an order is activated, so read them back with getCustomerSubscriptionsToday rather than reporting them from the activation response, which does not list them.
Approvals
Nine tools drive Nue Approvals Pro conversationally — the assistant can explain the routing a deal would take, submit it, and then work an approver's queue. They run on the same approval engine as the Approvals Pro UI and the Approvals API, so a quote submitted from chat follows the same paths, steps, approvers and record-locking rules, and lands in the same approval history.
These tools are licensed and permissioned separately from the rest of the Nue Lifecycle Manager, and no role except System Administrator can see them until an administrator grants the permissions — see Approvals: licensing, permissions and tool visibility below.
Tool | What it does |
|---|---|
previewApprovalPath | Show the approval routing a record would follow, without submitting it — nothing is created, assigned, notified or locked. Returns every path evaluated (including non-triggering ones) with its steps, approvers and dependencies |
submitForApproval | Submit a record for approval, optionally scoped to a named process and with a submission message |
getApprovalStatus | Return the live status of a record's approval request — overall status, lock state, justification, rejection reason and the steps, grouped into the paths they belong to |
getPendingApprovals | List the approvals assigned to a user (the approver's queue), optionally filtered by assignee and status, paged with nextCursor |
approveApprovalRequest | Approve one or more pending approvals, optionally with a message |
rejectApprovalRequest | Reject one or more pending approvals, optionally with a reason |
reassignApprovalRequest | Reassign one or more pending approvals to a different approver — a user, group or role |
recallApprovalRequest | Recall (withdraw) an in-flight submission so the record can be edited again |
listApprovalProcesses | List the approval processes configured for an object type or record — metadata only (name, version, active, order, entry criteria) |
Three behaviours are worth knowing, because they shape what a correct answer looks like:
- A record with no matching path cannot be submitted. When previewApprovalPath reports requiresApproval: false and no process was named, submitting is rejected with NO_MATCHING_PATH — it is not auto-approved and it does not skip through. The deal has to change, or the approval process does.
- "Not Submitted" is a state, not an error. getApprovalStatus on a record that was never submitted returns the literal status Not Submitted with no steps. That means "not submitted yet", not "no approval needed" — use previewApprovalPath to answer what it would need.
- Most of a queue is often not actionable. getPendingApprovals deliberately includes items whose stepStatus is Dependent: they are waiting on a prerequisite step or path and cannot be approved, rejected or reassigned yet. The raw count is not the number of approvals the user can act on.
Write actions are atomic per call — a batch of approval IDs is validated before anything is written, so one ineligible or already-resolved item fails the whole call and nothing is recorded. There is no partial success in an approval trail.
Products and Pricing
Tool | What it does |
|---|---|
getBundleDetails | Get a bundle product's full structure — options, add-ons, price book entries |
getProductPrices | Get active price book entries for a product (by ID, name, or SKU) |
getPriceTagDetails | Inspect a price tag (PriceDimension / DiscountDimension / PriceTier) |
publishProduct / unpublishProduct | Publish or unpublish a product |
publishPriceTag / unpublishPriceTag | Publish or unpublish a price tag |
publishProductRelationship / unpublishProductRelationship | Publish or unpublish a product relationship |
enablePriceBookSelfService / disablePriceBookSelfService | Toggle self-service pricing on a price book |
Invoices & Credit Memos
These tools read and list a customer's invoices and credit memos (and their templates) — for answering questions and pulling records. They do not generate invoices, run billing schedules, or process payments; those are billing-engine functions outside the Nue Lifecycle Manager.
Tool | What it does |
|---|---|
getCustomerInvoices | List a customer's invoices |
getCustomerCreditMemos | List a customer's credit memos |
getInvoiceTemplates | List available invoice templates |
getCreditMemoTemplates | List available credit memo templates |
Metadata and Schema
Tool | What it does |
|---|---|
getObjectMetadata | Inspect any Nue object's field metadata |
getGraphqlSchema | Retrieve the GraphQL schema for Nue's data graph |
executeGraphqlQuery | Run a GraphQL query against price books, products, UoMs, and price tags |
How it's used
For renewal workflows, getCustomerSubscriptions supports an "up for renewal" view via an optional renewalDate parameter — returns active subscriptions ending before the target date, sorted by end date, so the agent can identify upcoming renewals.
For account-hierarchy traversal, agents can include child accounts and retrieve data recursively for a complete, depth-first view of a customer family.
For real-time insight, getCustomerSubscriptionsToday delivers snapshot intelligence — as-of views and upcoming changes. When products and price tags are published, it includes product and pricing context for precise reasoning.
Change-order operations are fully supported through tools such as Set/Increase/Reduce Quantity, Renew, Co-Term, Adjust Price, Upgrade/Downgrade/Swap, and Cancel — with options to create quotes or orders. The agent confidently recommends or executes lifecycle actions with clear defaults and guided confirmations, making complex subscription management seamless.
For approvals, the natural sequence is preview → submit → track: previewApprovalPath answers "what will this deal need, and who signs it off?" before anything is created, submitForApproval starts the process, and getApprovalStatus draws where it stands — as the parallel and dependent paths it actually runs as, not a flat list of names. On the approver's side, getPendingApprovals is the queue and approveApprovalRequest / rejectApprovalRequest / reassignApprovalRequest work it. recallApprovalRequest pulls a submission back so the rep can edit and resubmit.
Approvals: licensing, permissions and tool visibility
The approvals tools sit behind their own license and their own permissions, and — unlike the rest of the Nue Lifecycle Manager — no role except System Administrator can see them out of the box. This section is what an administrator needs to turn them on.
License
Approvals is the Approval Management feature, granted by the Lifecycle Manager license. If the tenant does not hold that license the feature is off and the permissions below cannot be granted, so the tools are invisible to everyone.
The four permissions
Approvals is split into four permission functions on the Roles page, under Approval Management. They are deliberately separate so that seeing an approval, submitting one, and deciding one can be granted independently.
Permission | Unlocks | Grant it to |
|---|---|---|
View Approval Processes | listApprovalProcesses | Anyone who needs to know which approval processes exist for a quote or order |
View Approvals | previewApprovalPath, getApprovalStatus, getPendingApprovals | Reps who need to ask what a deal would need and where it stands; approvers who need to see their queue |
Submit Approvals | submitForApproval, recallApprovalRequest | Reps who put deals into approval and pull them back to edit |
Act on Approvals | approveApprovalRequest, rejectApprovalRequest, reassignApprovalRequest | Approvers who decide, and delegate |
No standard role except System Administrator ships with these permissions. Sales Representative, Revenue Operations Manager, Finance Operations Manager and E-Signature User all arrive without them, so every approvals tool shows as Not permitted in Tool Visibility for those roles until someone grants the function on the Roles page. System Administrator holds every function, so it sees the approvals tools as soon as the tenant is licensed. A rep whose assistant says it has no way to submit a quote for approval is almost always missing the grant, not hitting a bug.
Granting View Approvals without Act on Approvals is a supported and useful shape: the assistant can explain the routing, report status and read the queue, but cannot approve, reject or reassign anything. Submitting is likewise independent of deciding.
How the tools map to permissions
Tool visibility is derived from the API resources each tool declares — a tool is visible to a role only when that role's permissions cover every resource it uses. For approvals that mapping is one tool to one route, with a single exception:
Tool | API resource | Permission |
|---|---|---|
listApprovalProcesses | GET /cpq/approval-processes | View Approval Processes |
previewApprovalPath | POST /cpq/approvals:preview | View Approvals |
getApprovalStatus | GET /cpq/approval-requests and POST /cpq/approvals:preview | View Approvals |
getPendingApprovals | GET /cpq/approvals | View Approvals |
submitForApproval | POST /cpq/approvals:submit | Submit Approvals |
recallApprovalRequest | POST /cpq/approvals:recall | Submit Approvals |
approveApprovalRequest | POST /cpq/approvals:approve | Act on Approvals |
rejectApprovalRequest | POST /cpq/approvals:reject | Act on Approvals |
reassignApprovalRequest | POST /cpq/approvals:reassign | Act on Approvals |
The exception is getApprovalStatus, which declares two resources: the status read, and the side-effect-free preview it joins to in order to group the flat steps into their approval paths. Both belong to View Approvals, so the second resource does not narrow who can see the tool.
Each action is gated on its own exact route. Holding View Approvals does not leak the :approve, :reject, :reassign, :submit or :recall verbs, and holding Submit Approvals does not reach the act verbs. There is no wildcard that covers the approvals surface as a whole.
Hiding approvals tools from a role
Once a role has the permissions, its approvals tools are visible, and an administrator can hide individual ones from Settings → MCP Servers → Tool Visibility on the Nue Lifecycle Manager row. Overrides only ever subtract — you can hide a tool a role is entitled to, but you cannot show one it has no permission for. See Tool Visibility for the full model.
A worked example: to give approvers a chat that can decide but never delegate, grant Act on Approvals and hide reassignApprovalRequest from that role. To give reps a read-only approvals assistant, grant View Approvals alone.
Visibility is resolved when an assistant connects. A permission grant or a visibility change takes effect in the next session, not the one already open — ask the user to reconnect if they need it sooner.
Visibility is discovery; the platform still authorizes every call
Hiding a tool removes it from what the assistant can find and call through the gateway. It does not change what the underlying API allows, and it is not the only check an approvals action passes. On top of the role permissions, the approval engine applies its own eligibility rules to each action, and refuses with NOT_ELIGIBLE when they are not met:
- approving, rejecting or reassigning an item the caller is not the assigned approver for (reassigning on someone else's behalf additionally requires Reassign Any Approval);
- recalling a submission the caller did not submit, without permission to recall on others' behalf;
- reading another user's pending queue without View Any Pending Approval;
- acting on a step whose stepStatus is still Dependent.
So a role can hold Act on Approvals, see the tool, call it, and still be correctly refused for a specific approval. That refusal is the platform working as intended, not a misconfiguration — the assistant is expected to explain it rather than retry.
Because requests execute against a Salesforce session, the acting user must also be able to see the underlying quote or order. An OAuth sign-in carries that user's own record-level sharing; a static API key carries only its role's access.
Connect to Nue Lifecycle Manager
The recommended way to connect is per-user OAuth — you sign in through your browser and the assistant acts as you, with your permissions and your security policies. No API keys to copy or JSON to hand-edit, and it works as a one-click custom connector in ChatGPT, Codex, Claude, Claude Code, and more. See Connecting to Nue MCP.
Nue Environment | MCP Server Endpoint |
|---|---|
https://mcp.sandbox.nue.io/mcp | |
https://mcp.nue.io/mcp |
Fallback: connect with a static API key
A static nue-api-key is available for unattended connections that shouldn't have to re-authenticate (automation, CI jobs, headless agents). A key grants role-based access — whatever its Nue user role allows — and does not honor Salesforce record-level sharing the way an OAuth sign-in does, so provision it with the least-privilege role for the agent's job.
Use the following configuration to connect your favorite MCP client (Cursor, Windsurf, Claude Desktop, ChatGPT, etc.).
Nue Environment | MCP Server Endpoint | Authentication |
|---|---|---|
https://mcp.sandbox.nue.io/mcp | nue-api-key: Nue API Key | |
https://mcp.nue.io/mcp | nue-api-key: Nue API Key |
{
"mcpServers": {
"nue-lifecycle-manager-sandbox": {
"type": "http",
"url": "https://mcp.sandbox.nue.io/mcp",
"headers": {
"nue-api-key": "YOUR_NUE_API_KEY"
}
},
"nue-lifecycle-manager": {
"type": "http",
"url": "https://mcp.nue.io/mcp",
"headers": {
"nue-api-key": "YOUR_NUE_API_KEY"
}
}
}
}Cursor
- Locate Cursor's MCP Configuration File
- macOS: ~/.cursor/config.json
- Windows: %USERPROFILE%\.cursor\config.json
- Open or Create the Configuration File — if it doesn't exist, create it with {}.
- Add the MCP Server Configuration — merge the JSON above into mcpServers.
- Replace the API Key Placeholder — substitute YOUR_NUE_API_KEY.
- Save and Restart Cursor.
- Verify — open Cursor's AI chat and ask "List available Nue lifecycle tools."
Windsurf
In Windsurf, MCP servers are defined inside mcp_server_config.json:
- macOS: ~/.codeium/windsurf/mcp_server_config.json
- Windows: %USERPROFILE%\.codeium\windsurf\mcp_server_config.json
- Linux: ~/.codeium/windsurf/mcp_server_config.json
You can also open it from Windsurf's Cascade sidebar → click the MCPs icon → Config slider (top-right).
{
"mcpServers": {
"nue-lifecycle-manager-sandbox": {
"serverUrl": "https://mcp.sandbox.nue.io/sse",
"headers": {
"nue-api-key": "YOUR_NUE_API_KEY"
}
},
"nue-lifecycle-manager": {
"serverUrl": "https://mcp.nue.io/sse",
"headers": {
"nue-api-key": "YOUR_NUE_API_KEY"
}
}
}
}Save, restart Windsurf, and verify in the Cascade MCPs sidebar.
Claude Desktop
Option 1 — in your terminal:
claude mcp add --transport sse nue-lifecycle-manager https://mcp.nue.io/mcp --header "nue-api-key: YOUR_NUE_API_KEY"Option 2 — in .claude.json:
{
"mcpServers": {
"nue-lifecycle-manager-sandbox": {
"type": "http",
"url": "https://mcp.sandbox.nue.io/mcp",
"headers": {
"nue-api-key": "YOUR_NUE_API_KEY"
}
},
"nue-lifecycle-manager": {
"type": "http",
"url": "https://mcp.nue.io/mcp",
"headers": {
"nue-api-key": "YOUR_NUE_API_KEY"
}
}
}
}Reload Claude and type /mcp — you should see nue-lifecycle-manager listed.
Verify the connection
After connecting, test by asking:
What MCP tools are available in Nue Sandbox?
The client should list the Nue Lifecycle Manager tools above.
Fallback for clients without header support
If your MCP client doesn't support custom headers, use the mcp-remote proxy library (requires Node 20):
{
"mcpServers": {
"nue-lifecycle-manager": {
"command": "npx",
"args": [
"-y",
"[email protected]",
"https://mcp.nue.io/sse",
"--header",
"nue-api-key: YOUR_NUE_API_KEY"
]
}
}
}Related
- Connecting to Nue MCP — the recommended one-click, per-user way to connect this MCP from ChatGPT, Codex, Claude, Claude Code, and other clients.
- Transaction AI — the Nue AI Product that uses this MCP to drive quote, order, and renewal workflows from inside the platform.
- AI Guided Selling — author playbooks that control how the agent uses these tools per deal motion.
- Tool Visibility — how an administrator decides which tools each role's assistant can see.
- Approvals API — the REST surface the approvals tools call, with the full request and response contracts.
- Nue MCP Servers Overview — the MCP protocol, the Nue MCP catalog, and how Nue's MCP servers fit together.