Preview means the environment is included for testing, but its upstream coverage is incomplete. Verify the operations your test depends on.
Compatibility boundary
Local catalog validation: All five published samples passed. Checks cover the state contract, relationships, artifact hash, secret scan, and size limit.Local catalog validation is not hosted proof. Archal checks current certification, reset, and isolation evidence before admitting new sandboxes. Use the authenticated environment catalog for live availability.
- Broad non-CRM aliases remain replay-backed and are not general stateful guarantees.
Curated starting states
List the five samples witharchal sample list hubspot. Each sample is a versioned starting state with a representative read, mutation, expected diff, reset expectation, and verified artifact hash.
HubSpot contact baseline
HubSpot contact baseline
List one contact and create another without requiring company or deal associations.Sample ID: Expected diff: changes include Inspect the raw stateThe packaged JSON artifact is
hubspot.contact-baseline.v1Category: minimalStarting state: 1 record across contacts: 1Supported surface: Stateful CRM overlays for contacts, companies, deals, products, tickets, and associations.Required capabilities: state.read, state.load, state.reset, rest.crm-contactsFirst read: GET /crm/v3/objects/contacts. Expected result: HTTP 200.Representative mutation: POST /crm/v3/objects/contacts. Expected result: HTTP 200, 201, 204.Mutation inputcontacts. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.Expected reset: restores loaded sample.Known limits- Broad non-CRM aliases remain replay-backed and are not general stateful guarantees.
samples/states/hubspot/contact-baseline/state.json and is 665 bytes. The CLI verifies SHA-256 74252548bf45ce2477e2370a8aadba0fe0ae18cf14985fe3fc15cb3152ec8621 before printing it.Catalog validation: Passed. Hosted availability is determined by Archal’s live certification and admission system, not this static page.HubSpot stale CRM team
HubSpot stale CRM team
Exercise one contact, company, deal, ticket, product, and workflow whose timestamps need reconciliation.Sample ID: Expected diff: changes include Inspect the raw stateThe packaged JSON artifact is
hubspot.stale-crm-team.v1Category: small-teamStarting state: 16 records across automationWorkflows: 1, cmsDomains: 1, companies: 1, contactCompanyAssociations: 1, contacts: 1, crmLists: 3, crmPipelines: 1, crmSchemas: 1, deals: 1, line_items: 1, products: 1, quotes: 2, tickets: 1Supported surface: Stateful CRM overlays for contacts, companies, deals, products, tickets, and associations.Required capabilities: state.read, state.load, state.reset, rest.crm-contactsFirst read: GET /crm/v3/objects/contacts. Expected result: HTTP 200.Representative mutation: POST /crm/v3/objects/contacts. Expected result: HTTP 200, 201, 204.Mutation inputcontacts. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.Expected reset: restores loaded sample.Known limits- Broad non-CRM aliases remain replay-backed and are not general stateful guarantees.
samples/states/hubspot/stale-crm-team/state.json and is 9,206 bytes. The CLI verifies SHA-256 c3423bc62210bc38e1edf3bf56dee703654b9e58945c3a4ba36f4df6063ce9ae before printing it.Catalog validation: Passed. Hosted availability is determined by Archal’s live certification and admission system, not this static page.HubSpot populated CRM portfolio
HubSpot populated CRM portfolio
Exercise contact, company, deal, product, ticket, and line-item list behavior over the full demo corpus.Sample ID: Expected diff: changes include Inspect the raw stateThe packaged JSON artifact is
hubspot.demo-crm-portfolio.v1Category: populatedStarting state: 47 records across companies: 2, contacts: 6, deals: 6, line_items: 11, products: 11, tickets: 11Supported surface: Stateful CRM overlays for contacts, companies, deals, products, tickets, and associations.Required capabilities: state.read, state.load, state.reset, rest.crm-contactsFirst read: GET /crm/v3/objects/contacts. Expected result: HTTP 200.Representative mutation: POST /crm/v3/objects/contacts. Expected result: HTTP 200, 201, 204.Mutation inputcontacts. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.Expected reset: restores loaded sample.Known limits- Broad non-CRM aliases remain replay-backed and are not general stateful guarantees.
samples/states/hubspot/demo-crm-portfolio/state.json and is 18,618 bytes. The CLI verifies SHA-256 463c7c9426e8683719d970df564ff0d702a6d972b433ab711f0342fa7e9b96a1 before printing it.Catalog validation: Passed. Hosted availability is determined by Archal’s live certification and admission system, not this static page.HubSpot archived contact
HubSpot archived contact
Verify that an archived contact is excluded from default reads but addressable through archived-object behavior.Sample ID: Expected diff: changes include Inspect the raw stateThe packaged JSON artifact is
hubspot.archived-contact.v1Category: edge-caseStarting state: 2 records across contacts: 2Supported surface: Stateful CRM overlays for contacts, companies, deals, products, tickets, and associations.Required capabilities: state.read, state.load, state.reset, rest.crm-contactsFirst read: GET /crm/v3/objects/contacts. Expected result: HTTP 200.Representative mutation: POST /crm/v3/objects/contacts. Expected result: HTTP 200, 201, 204.Mutation inputcontacts. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.Expected reset: restores loaded sample.Known limits- Broad non-CRM aliases remain replay-backed and are not general stateful guarantees.
samples/states/hubspot/archived-contact/state.json and is 1,345 bytes. The CLI verifies SHA-256 1a30cd29d83e415330aa938cdcfc7ae61cbe16be0f688720a0c31f2f56385d6c before printing it.Catalog validation: Passed. Hosted availability is determined by Archal’s live certification and admission system, not this static page.HubSpot deal association workflow
HubSpot deal association workflow
Start from a linked contact, company, deal, and line item graph, then create and reset one independent contact.Sample ID: Expected diff: changes include Inspect the raw stateThe packaged JSON artifact is
hubspot.deal-association-workflow.v1Category: workflowStarting state: 6 records across companies: 1, contactCompanyAssociations: 1, contacts: 2, deals: 1, line_items: 1Supported surface: Stateful CRM overlays for contacts, companies, deals, products, tickets, and associations.Required capabilities: state.read, state.load, state.reset, rest.crm-contactsFirst read: GET /crm/v3/objects/contacts. Expected result: HTTP 200.Representative mutation: POST /crm/v3/objects/contacts. Expected result: HTTP 200, 201, 204.Mutation inputcontacts. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.Expected reset: restores loaded sample.Known limits- Broad non-CRM aliases remain replay-backed and are not general stateful guarantees.
samples/states/hubspot/deal-association-workflow/state.json and is 2,637 bytes. The CLI verifies SHA-256 e2149db70547a31843cd4a745890dec48cf514f52294cf3a6e4035bcc23a60fb before printing it.Catalog validation: Passed. Hosted availability is determined by Archal’s live certification and admission system, not this static page.Use custom state
Start from a sample when possible. For custom state, inspect the contract witharchal environment describe hubspot, then validate the file before creating a sandbox:
