01 / SERVICE ISSUES
Review the request contracts.
Prioritize action-body parsing, confirmation and iframe behavior. The ticket card needs replacement coverage for both record-sidebar and Helpdesk locations.
See the supporting findingsDEMONSTRATION — synthetic fixture, no client integration reviewed.
This report inventories supplied legacy definitions and response examples. It does not establish production compatibility or replace authenticated testing.
THE SAMPLE IN ONE MINUTE
This invented app needs backend and ticket-location checks before anyone can make a migration decision. The second card also needs missing response evidence. These are source-review priorities, not verified production defects.
01 / SERVICE ISSUES
Prioritize action-body parsing, confirmation and iframe behavior. The ticket card needs replacement coverage for both record-sidebar and Helpdesk locations.
See the supporting findings02 / ACCOUNT SUMMARY
Review the HTTP endpoint reference and unfamiliar display-property type. Response samples are missing; the review cannot establish this card’s behavior.
See the source gaps03 / NEXT DECISION
Resolve the source gaps and collect client test-portal evidence before considering view migration. All eight client acceptance tests below remain pending.
Read the test matrixEvidence boundary: no customer integration, endpoint or live portal was tested. This is a synthetic demonstration of the deliverable.
Documentation checked 2026-09-06 · Report generated 2026-09-06T16:58:58+00:00 · Analyzer 1.0.0
Legacy card sunset. HubSpot lists October 31, 2026 as the legacy card sunset. Recheck the current announcement when planning delivery.
View migration is irreversible. Once started, replacement of user views cannot be stopped or reversed. This review performs no migration; require client test-portal evidence before considering that operation.
Title: Service issues · Source ID: demo-card-1
| Record type | Requested properties |
|---|---|
| contacts | |
| tickets | subject, hs_pipeline_stage |
| Name | Label | Type |
|---|---|---|
| status | Issue status | STATUS |
| issue_url | Issue page | LINK |
Each row is an occurrence in supplied input; repeated destinations may share a handler. No request was sent. Query values and fragments are omitted.
| Use | Method | Target | Server review | Evidence pointer |
|---|---|---|---|---|
| data_fetch | GET | https://api.example.com/hubspot/issues | Required | /cards/0/definition/fetch/targetUrl |
| action_base | Unspecified | https://api.example.com/hubspot | Configuration reference | /cards/0/definition/actions/baseUrls/0 |
| action_base | Unspecified | https://app.example.com/hubspot | Configuration reference | /cards/0/definition/actions/baseUrls/1 |
| iframe | Unspecified | https://app.example.com/hubspot/issues/101/edit | Required | /cards/0/responseSamples/0/results/0/actions/0/uri |
| action_hook | PUT | https://api.example.com/hubspot/issues/101/resolve | Required | /cards/0/responseSamples/0/results/0/actions/1/uri |
| action_hook | DELETE | https://api.example.com/hubspot/issues/101 | Required | /cards/0/responseSamples/0/results/0/actions/2/uri |
| iframe | Unspecified | https://app.example.com/hubspot/issues/new | Required | /cards/0/responseSamples/0/primaryAction/uri |
| iframe | Unspecified | https://app.example.com/hubspot/settings | Required | /cards/0/responseSamples/0/settingsAction/uri |
| action_hook | POST | https://api.example.com/hubspot/refresh | Required | /cards/0/responseSamples/0/secondaryActions/0/uri |
| Location | Type | Label | Method | Requested properties |
|---|---|---|---|---|
| result | IFRAME | Edit issue | Not supplied | subject |
| result | ACTION_HOOK | Resolve issue | PUT | hs_pipeline_stage |
| result | CONFIRMATION_ACTION_HOOK | Remove issue | DELETE | None supplied |
| primaryAction | IFRAME | Create issue | Not supplied | None supplied |
| settingsAction | IFRAME | Settings | Not supplied | None supplied |
| secondaryAction | ACTION_HOOK | Refresh summary | POST |
| Target | Evidence pointer |
|---|---|
| https://app.example.com/issues/101 | /cards/0/responseSamples/0/results/0/link |
| https://app.example.com/issues/101 | /cards/0/responseSamples/0/results/0/issue_url |
| Priority | Rule | Finding | Evidence pointer |
|---|---|---|---|
| unknown | PLATFORM | Project and rollout state unavailable | /cards/0 |
| unknown | PERMISSIONS | Replacement URL permissions unverified | /cards/0 |
| unknown | SAMPLES_ONLY | Samples cannot establish coverage | /cards/0 |
| medium | TITLE | Dynamic title needs an alternative | /cards/0/definition |
| high | FETCH_BACKEND | Data endpoint needs source review | /cards/0/definition/fetch/targetUrl |
| medium | APP_ID | Converter adds appId | /cards/0/definition/fetch/targetUrl |
| high | TICKET_LOCATIONS | Ticket cards need two locations | /cards/0/definition/fetch/objectTypes/1 |
| medium | LINK | Link destination untested | /cards/0/responseSamples/0/results/0/link |
| medium | LINK | Link destination untested | /cards/0/responseSamples/0/results/0/issue_url |
| high | IFRAME | Iframe behavior needs authenticated testing | /cards/0/responseSamples/0/results/0/actions/0 |
| high | ACTION_BACKEND | Action endpoint needs source review | /cards/0/responseSamples/0/results/0/actions/1 |
| medium | APP_ID | Converter adds appId | /cards/0/responseSamples/0/results/0/actions/1 |
| high | BODY_FORMAT | Action body changes in the converter | /cards/0/responseSamples/0/results/0/actions/1 |
| high | ACTION_BACKEND | Action endpoint needs source review | /cards/0/responseSamples/0/results/0/actions/2 |
| medium | APP_ID | Converter adds appId | /cards/0/responseSamples/0/results/0/actions/2 |
| high | CONFIRMATION | Preserve action confirmation | /cards/0/responseSamples/0/results/0/actions/2 |
| high | IFRAME | Iframe behavior needs authenticated testing | /cards/0/responseSamples/0/primaryAction |
| high | IFRAME | Iframe behavior needs authenticated testing | /cards/0/responseSamples/0/settingsAction |
| medium | SETTINGS | Settings presentation changes | /cards/0/responseSamples/0/settingsAction |
| high | ACTION_BACKEND | Action endpoint needs source review | /cards/0/responseSamples/0/secondaryActions/0 |
| medium | APP_ID | Converter adds appId | /cards/0/responseSamples/0/secondaryActions/0 |
| high | BODY_FORMAT | Action body changes in the converter | /cards/0/responseSamples/0/secondaryActions/0 |
Title: Account summary · Source ID: demo-card-2
| Record type | Requested properties |
|---|---|
| companies | domain |
| Name | Label | Type |
|---|---|---|
| is_active | Active account | BOOLEAN |
Each row is an occurrence in supplied input; repeated destinations may share a handler. No request was sent. Query values and fragments are omitted.
| Use | Method | Target | Server review | Evidence pointer |
|---|---|---|---|---|
| data_fetch | GET | http://legacy.example.com/account-summary | Required | /cards/1/definition/fetch/targetUrl |
None observed in the supplied fixture.
None observed in the supplied fixture.
| Priority | Rule | Finding | Evidence pointer |
|---|---|---|---|
| unknown | PLATFORM | Project and rollout state unavailable | /cards/1 |
| unknown | PERMISSIONS | Replacement URL permissions unverified | /cards/1 |
| unknown | SAMPLES_ONLY | Samples cannot establish coverage | /cards/1 |
| medium | TITLE | Dynamic title needs an alternative | /cards/1/definition |
| high | HTTP | HTTP URL observed | /cards/1/definition/fetch/targetUrl |
| high | FETCH_BACKEND | Data endpoint needs source review | /cards/1/definition/fetch/targetUrl |
| medium | APP_ID | Converter adds appId | /cards/1/definition/fetch/targetUrl |
| unknown | UNKNOWN_TYPE | Property type needs manual review | /cards/1/definition/display/properties/0/dataType |
| unknown | MISSING | Review input is incomplete | /cards/1/responseSamples |
| Rule | Review note | Source IDs |
|---|---|---|
| ACTION_BACKEND | Hook actions make server-side requests. Review authorization, request validation and side effects before adapting them. | legacy |
| APP_ID | The converter adds appId to data and action requests. Test handlers that reject unexpected parameters or rely on exact request representations. | converter |
| BODY_FORMAT | The official converter uses JSON for POST/PUT/PATCH, versus legacy form encoding. Confirm backward-compatible backend parsing; GET/DELETE use query parameters. | converter |
| CONFIRMATION | Confirmation hooks display a dialog before the request. Test cancellation, confirmation and protection against repeated side effects. | legacy |
| FETCH_BACKEND | Inventory the fetch handler, record context, data mapping and failure behavior. Its existence in a fixture does not prove reachability or correct authorization. | legacy |
| HTTP | Review an HTTPS replacement and redirect behavior before adding this target to new app URL permissions. | configuration |
| IFRAME | Legacy iframe actions do not receive the hook request signature. Review iframe authorization, framing policy, session handling and close/cancel behavior in the client test portal. | legacy |
| IRREVERSIBLE | Once started, replacement of user views cannot be stopped or reversed. This review performs no migration; require client test-portal evidence before considering that operation. | migration |
| LINK | Test navigation, permissions, redirects and target behavior with a representative user; no destination is visited by this tool. | Analyzer assessment |
| MISSING | Supply the missing source section or field. Absence from this fixture does not establish absence from the live integration. | Analyzer assessment |
| PERMISSIONS | New app configuration separates permitted fetch, iframe and image URLs, and requires HTTPS. This tool does not generate or verify that configuration. | configuration |
| PLATFORM | Verify projects framework 2025.2 or newer, installed scopes, replacement cards and applicable feature flags. The migration guide requires deleting hs-release-app-cards and hs-hide-crm-cards when applicable before view migration. | migration |
| SAMPLES_ONLY | Collect representative empty, normal, error and permission-dependent responses. No sample proves all live branches are covered. | Analyzer assessment |
| SETTINGS | The converter presents a settings button rather than the legacy footer action. Compare the customer workflow. | converter |
| SUNSET | HubSpot lists October 31, 2026 as the legacy card sunset. Recheck the current announcement when planning delivery. | sunset |
| TICKET_LOCATIONS | Ticket migration requires replacements for crm.record.sidebar and helpdesk.sidebar, with distinct titles and both replacement IDs. | migration |
| TITLE | The converter's card title is static; counts can be placed inside card content. Compare this against the legacy user experience. | converter |
| UNKNOWN_TYPE | The type is outside this analyzer's reviewed display set. This is not a declaration that HubSpot rejects it. | Analyzer assessment |
| ID | Case | Acceptance evidence | Environment | Status |
|---|---|---|---|---|
| T01 | Source completeness | Reconcile every deployed legacy card and object type against the inventory; explain missing sources and unknown fields. | Client source review | not_run |
| T02 | Record data and empty states | Compare normal, empty, missing-property, duplicate-result and large-result cases in both card locations that apply. | Client test portal | not_run |
| T03 | Backend request contracts | Capture sanitized request metadata and compare method, query, JSON/form parsing, extra parameters and request verification without storing credentials. | Client test portal and backend | not_run |
| T04 | Failure handling | Inject timeout, unreachable endpoint, 401/403, 404, 429, malformed response and 5xx; verify understandable errors and bounded retries. | Client test portal and controlled backend | not_run |
| T05 | Action integrity | Verify confirm/cancel, double click, replay and retry. A repeated request must not duplicate a charge, deletion or other irreversible effect. | Client test portal with synthetic records | not_run |
| T06 | Iframe and link flow | Test permitted targets, session expiry, framing restrictions, redirects, navigation and close/cancel with representative user permissions. | Client test portal | not_run |
| T07 | Least privilege and isolation | Test limited users, multiple installed accounts and denied record access; data and actions remain scoped to the correct account and user. | Client test portal and backend | not_run |
| T08 | Rollout evidence | Recheck current docs, replacement IDs, all locations, scope grants and flag state; record test evidence and a client-controlled cutover decision before irreversible view migration. | Client-controlled rollout review | not_run |
Input SHA-256: fbcdbaf767c38610b3210a1e9e55d7a618374eadb57fb01e589a8ce2f2c9eed4
$750 USD + applicable tax · Up to 2 cards in 1 public/unlisted app. Receive an independent, AI-assisted source review and prioritized change/test plan within 2 business days after payment is verified, complete sanitized inputs are accepted, and we confirm the start.
Full migration and production troubleshooting are excluded. Implementation is separately scoped from $4,500. Cancel before work starts for a refund.