Automate the PolicyCenter account→submission→quote→bind→issue→endorse→renew pipeline including the failure paths — underwriting issues blocking bind, quotes expiring before bind, referrals stuck pending approval, and mid-term endorsements that trigger unexpected premium audit recalculation. Use when building outbound integrations against PolicyCenter Cloud API (CRM-driven submission, broker-portal binding, automated renewal jobs). Trigger with "policycenter automation", "submission to bind", "policy renewal", "policy endorsement", "underwriting issue".
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
Automate the PolicyCenter account→submission→quote→bind→issue→endorse→renew pipeline including the failure paths — underwriting issues blocking bind, quotes expiring before bind, referrals stuck pending approval, and mid-term endorsements that trigger unexpected premium audit recalculation. Use when building outbound integrations against PolicyCenter Cloud API (CRM-driven submission, broker-portal binding, automated renewal jobs). Trigger with "policycenter automation", "submission to bind", "policy renewal", "policy endorsement", "underwriting issue".
allowed-tools
Read, Write, Edit, Bash(curl:*), Bash(jq:*), Grep
version
1.25.0
license
MIT
author
Jeremy Longshore <jeremy@intentsolutions.io>
compatibility
Designed for Claude Code, also compatible with Codex and OpenClaw
Drive the PolicyCenter policy lifecycle through Cloud API and survive the state-transition failures that derail naive automation. This is the workflow used by broker portals to quote-and-bind, by CRMs to push submissions, and by renewal jobs to issue out-of-cycle. Assumes guidewire-install-auth provides the bearer token and guidewire-sdk-patterns provides the retrying client with checksum round-trip.
Five production failures this skill prevents:
Bind on a quote with open UW issues — quote API returns 200, the underwritingIssues[] array is non-empty, the client ignores it, bind returns 422 rule-violation.
Bind on a stale quote — quotes expire (default 30 days). A submission left open over a holiday returns 422 quote-expired on bind.
Orphaned submissions on partial failure — submission → quote succeeds, bind fails, no rollback; the submission sits in Quoted status forever, blocking the next attempt.
Renewal outside the renewal window — calling renewal before the window opens (typically 60–90 days before expiration) returns 422 renewal-window-closed.
Endorsement premium drift — mid-term endorsement recalculates premium against current rate plans, which may differ from the rate plan in force at policy inception. The numeric difference surprises downstream finance integrations.
Prerequisites
A working auth + SDK layer per guidewire-install-auth and guidewire-sdk-patterns (getToken(), patchResource(), paginate(), mapError())
Cloud API roles pc.account.write, pc.submission.write, pc.policy.write assigned to the integration's Service Application
Knowledge of which product code drives the workflow (e.g., PersonalAuto, BOPLine) — submission shape is product-specific
For renewal jobs: read access to the renewal-window configuration on the relevant product
Instructions
Build the workflow as discrete state-transition functions, each fully responsible for surfacing the failure modes of its transition. Compose them with explicit checkpoints — never collapse the pipeline into a single fire-and-forget call.
The Idempotency-Key prevents duplicate accounts on retry. Persist account.attributes.accountNumber and the resource id immediately — both are needed downstream and the resource id is not derivable from the number.
2. Create the submission against the account
Submission is product-specific; its attributes shape varies. Read the product's submission schema from the API reference rather than hardcoding fields. The submission moves to Draft on creation.
Some UW issues are informational and bind succeeds anyway; check the boolean per issue, not the array length. Surface blocking issues to the manual review queue with the originating actor's identity so the underwriter has context.
4. Bind within the quote validity window
Quotes carry attributes.quoteExpirationDate. Past it, bind returns 422 quote-expired. Re-quote rather than retry.
After bind, the submission status moves to Bound and a Policy resource is created. bound.attributes.policy.id is the canonical policy reference for issuance, endorsement, and renewal.
5. Issue (commit the bound policy to in-force)
Bind alone does not put the policy in force; issuance is a separate transition. A bound-but-not-issued policy is invisible to billing; downstream invoices will not generate.
Threshold is policy-dependent; finance teams typically want any drift over a few hundred dollars surfaced before bind. Do not silently bind material drifts — they show up as billing surprises.
7. Renewal within the renewal window
The renewal window is configured per product line. Hardcoding 60 days is wrong for any product with non-default settings; read the configuration or accept rejection from the API and respond to the renewal-window-closed error type.
422 with errors[].type === "rule-violation" on bind
unaddressed blocking UW issue
inspect quoted.attributes.underwritingIssues; never retry; route to manual review
422 quote-expired on bind
quote past quoteExpirationDate
re-quote the submission; do not retry the bind directly
422 renewal-window-closed
renewal initiated outside the configured window
back off until the window opens; surface retryAfter to the caller
422 submission-state-invalid
trying to bind a submission still in Draft
call quote first; the state machine is enforced server-side
409 Conflict on PATCH of submission
another job edited the submission concurrently
use patchResource() from guidewire-sdk-patterns to handle checksum round-trip
Bound policy never reaches In Force
bind was called but issue was not
issue is a separate API call after bind — both are required
Endorsement premium differs materially from expected
rate plan changed between policy inception and endorsement effective date
surface the drift to finance before binding; do not silently absorb the delta
Submission stuck in Quoted after a failed bind
partial-failure orphan
resume by checking underwritingIssues and re-attempting bind, or withdraw via the withdraw endpoint
For deeper coverage (custom product schemas, line-of-business-specific submission shapes, multi-policy bind, broker hierarchy authorization), see implementation guide and API reference.
See Also
guidewire-install-auth — bearer token and scope assignment for the workflow