Menu

What Spriggit reads, writes and keeps

Read-only to start

The install requires read access only: contacts, companies and deals, their properties, and record owners. Every write permission is optional and can be declined at install, and Spriggit writes only through plans a person approves.

Changes only through plans

Every change Spriggit makes is a plan a person approves. Developer mode, the default, changes only sandbox, developer test and demo portals. A live portal changes only in live mode, which a person turns on in the web app with an authenticator app, for a set time. Deletes, invitations, raw API writes and workflows with webhooks or code are applied by a person in the web app.

A record of every change Spriggit makes

Each applied plan leaves a change record with what changed and how to undo it. Changes made directly in HubSpot show up in the portal’s activity as outside changes.

Record values and AI

Whether record values may go into AI prompts is the client’s setting, and only the client’s admin can loosen it, with a second sign-in step. Audit checks that use AI run only when it allows them, replace names, emails, phone numbers and card or Social Security number shapes with tokens first, and judge a sample of up to 200 records per object.

What Spriggit stores

Spriggit’s database and files are stored with Supabase in Canada (Montreal), and the app runs on DigitalOcean in New York. HubSpot tokens and AI keys are encrypted at rest.

  • Snapshots of a portal’s setup: daily for 35 days, weekly for 26 weeks, monthly for 24 months, and the newest ten always. A snapshot a plan depends on is kept with that plan.
  • Record values an audit needs for a fix: 30 days, or longer while a fix that used them can still be undone.
  • Values saved before a change so it can be put back: the 90-day undo window.
  • After an uninstall: HubSpot tokens are deleted at once, and the portal’s history 90 days later.

Who processes data

  • Supabase: the database, sign-in and file storage.
  • DigitalOcean: hosting for the app.
  • Resend: email, such as invitations and digests.
  • Stripe: billing.
  • The AI provider your agency picks: Anthropic, OpenAI or Google Gemini.

AI runs on your agency’s own API key. The key is encrypted and tied to your workspace, used only on Spriggit’s servers, and never shown again once saved; screens show its last four characters.

Data shared with HubSpot

Scopes used by a shipped feature
ScopeKindHubSpot data it coversSpriggit accessWhat Spriggit does with it
oauthRequiredBasic OAuth accessRead onlySigns the portal in and reads the account details (hub ID, time zone).
crm.objects.contacts.readRequiredContact recordsRead onlyReads contacts to count them and to check data quality in audits.
crm.objects.companies.readRequiredCompany recordsRead onlyReads companies to count them and to check data quality in audits.
crm.objects.deals.readRequiredDeal recordsRead onlyReads deals to count them and to check data quality in audits.
crm.schemas.contacts.readRequiredContact property settingsRead onlyReads contact properties, groups and validation rules.
crm.schemas.companies.readRequiredCompany property settingsRead onlyReads company properties, groups and validation rules.
crm.schemas.deals.readRequiredDeal property settingsRead onlyReads deal properties, groups, validation rules and pipelines.
crm.objects.owners.readRequiredOwners (users who can be assigned to records)Read onlyReads owners so audits and plans can name them.
crm.objects.tickets.readOptionalTicket recordsRead onlyReads tickets to count them and reads ticket pipelines.
crm.objects.tickets.writeOptionalTicket recordsRead and writeSeeds and cleans up demo tickets.
crm.schemas.tickets.readOptionalTicket property settingsRead onlyReads ticket properties, groups and pipelines.
crm.schemas.tickets.writeOptionalTicket property settingsRead and writeCreates and changes ticket properties and property groups from an approved plan.
crm.schemas.contacts.writeOptionalContact property settingsRead and writeCreates and changes contact properties, property groups and validation rules from an approved plan.
crm.schemas.companies.writeOptionalCompany property settingsRead and writeCreates and changes company properties, property groups and validation rules from an approved plan.
crm.schemas.deals.writeOptionalDeal property settingsRead and writeCreates and changes deal properties, property groups and validation rules from an approved plan.
crm.schemas.custom.readOptionalCustom object definitionsRead onlyReads custom object schemas, properties and associations.
crm.schemas.custom.writeOptionalCustom object definitionsRead and writeCreates and changes custom object schemas from an approved plan.
crm.objects.custom.readOptionalCustom object recordsRead onlyCounts custom object records for the portal limits report.
crm.objects.custom.writeOptionalCustom object recordsRead and writeSeeds and cleans up demo records on custom objects.
crm.objects.contacts.writeOptionalContact recordsRead and writeSeeds and cleans up demo contacts; applies approved data fixes and duplicate merges.
crm.objects.companies.writeOptionalCompany recordsRead and writeSeeds and cleans up demo companies; applies approved data fixes and duplicate merges.
crm.objects.deals.writeOptionalDeal recordsRead and writeSeeds and cleans up demo deals; applies approved data fixes and duplicate merges.
crm.objects.products.readOptionalProduct recordsRead onlyReads the product library.
crm.objects.products.writeOptionalProduct recordsRead and writeCreates and changes products from an approved plan; seeds demo products.
crm.objects.line_items.readOptionalLine item propertiesRead onlyReads line item properties.
crm.objects.line_items.writeOptionalLine item recordsRead and writeSeeds and cleans up demo line items.
crm.objects.leads.readOptionalLead records and propertiesRead onlyReads lead properties and pipelines.
crm.objects.leads.writeOptionalLead recordsRead and writeSeeds and cleans up demo leads.
crm.pipelines.orders.readOptionalOrder pipelinesRead onlyReads order pipelines and their stages.
crm.pipelines.orders.writeOptionalOrder pipelinesRead and writeCreates and changes order pipelines through the pipelines section of an approved plan.
crm.lists.readOptionalLists (segments)Read onlyReads lists, their filters and their membership type.
crm.lists.writeOptionalLists (segments)Read and writeCreates lists and updates list filters from an approved plan.
automationOptionalWorkflows (legacy scope covering read and write)Read and writeReads workflows; creates, changes and deletes workflows (created switched off) from an approved plan.
formsOptionalForms (legacy scope covering read and write)Read and writeReads forms; creates and changes forms from an approved plan.
contentOptionalContent APIs: pages, blog posts, marketing email and URL redirectsRead and writeReads and manages URL redirects; creates marketing email drafts from an approved plan (never sends or publishes); reads marketing email send counts for the credits meter.
marketing.campaigns.readOptionalMarketing campaigns and their assetsRead onlyReads campaigns and the assets attached to them.
marketing.campaigns.writeOptionalMarketing campaigns and their assetsRead and writeCreates and changes campaigns and attaches assets from an approved plan.
behavioral_events.event_definitions.read_writeOptionalCustom event definitionsRead and writeReads custom event definitions; creates and changes them from an approved plan.
settings.users.readOptionalAccount users and their permissionsRead onlyReads users, roles and seat holders for audits and plans.
settings.users.writeOptionalAccount users and their permissionsRead and writeCreates, changes and removes users from an approved plan.
settings.users.teams.readOptionalTeamsRead onlyReads teams and their members.
settings.users.teams.writeOptionalTeamsRead and writeCreates teams and changes membership from an approved plan.
settings.currencies.readOptionalCompany currency and exchange ratesRead onlyReads the company currency and exchange rates.
settings.currencies.writeOptionalCompany currency and exchange ratesRead and writeSets the company currency and exchange rates from an approved plan.
hubdb.tables.readOptionalHubDB tablesRead onlyReads HubDB table definitions.
hubdb.tables.writeOptionalHubDB tablesRead and writeCreates and changes HubDB tables from an approved plan.
hubdb.tables.publishOptionalHubDB table publishingRead and writePublishes a HubDB table after it is created or changed in an approved plan.
hubdb.rows.readOptionalHubDB rowsRead onlyReads HubDB rows.
hubdb.rows.writeOptionalHubDB rowsRead and writeAdds the rows of a table created in an approved plan.
business_units_view.readOptionalBrands (business units)Read onlyReads which brands a user can see.
crm.objects.users.readOptionalUser records in the CRMRead onlyReads users when settings.users.read is not granted.
settings.billing.writeOptionalPaid seats (billing settings)Read and writeReads seat assignments, which HubSpot only exposes under this scope; assigns and removes seats from an approved plan.
account-info.security.readOptionalAccount activity and login historyRead onlyReads login activity for the inactive-seat audit.
conversations.readOptionalHelp desk and inbox threads, messages and actorsRead onlyCounts inbound conversations a month for the credits goals (Customer Agent). Reads thread dates only, never message text.
crm.objects.invoices.readOptionalInvoice recordsRead onlyCounts open and past-due invoices for the credits meter and goals (Revenue agent).
crm.schemas.invoices.readOptionalInvoice property settingsRead onlyReads invoice properties with the other objects’ definitions.

Scopes requested but not used by a shipped feature

Scopes requested but not used by a shipped feature
ScopeKindHubSpot data it coversSpriggit access
marketing-emailOptionalMarketing email (retrieve and send)Not used
marketing.campaigns.revenue.readOptionalRevenue and deal amounts attributed to campaignsNot used
automation.sequences.readOptionalSequencesNot used (raw API tool only)
automation.sequences.enrollments.writeOptionalSequence enrollmentsNot used (raw API tool only)
crm.objects.goals.readOptionalGoalsNot used (raw API tool only)
communication_preferences.readOptionalContacts’ subscription preferencesNot used (raw API tool only)
communication_preferences.writeOptionalContacts’ subscription preferencesNot used (raw API tool only)
communication_preferences.read_writeOptionalContacts’ subscription preferencesNot used (raw API tool only)
communication_preferences.statuses.batch.readOptionalSubscription status of many contacts at onceNot used (raw API tool only)
communication_preferences.statuses.batch.writeOptionalSubscription status of many contacts at onceNot used (raw API tool only)
crm.importOptionalCRM importsNot used (raw API tool only)
crm.exportOptionalCRM exportsNot used
crm.objects.users.writeOptionalUser records in the CRMNot used
analytics.behavioral_events.sendOptionalCustom event occurrencesNot used (raw API tool only)

Report a security issue

Email [email protected]