Integrations

WeSuite

Connect Selena AI to WeSuite so agents can search parts, build estimates, and write BOM results back into your system.

Why connect Selena to WeSuite?

WeSuite is where your team already builds and prices security-system estimates. Connecting it lets Selena work directly against your instance — resolving parts against your live catalog, reading and building real estimates, and writing BOM results back as line items — instead of producing output somebody has to re-key.

To get started, an admin goes to Dashboard → Integrations → WeSuite and runs the setup wizard. Each user then connects their own WeSuite account from Dashboard → Settings → Integrations → WeSuite.

WeSuite is typically on-premises, so setup asks for your own instance's URLs rather than signing in to a hosted service. The two URLs are needed at different moments:

  • The API URL is what validation contacts. It has to be reachable from outside your network, or setup cannot complete.
  • The QuoteAnywhere URL is never called by Selena. It is used to build the OAuth callback that gets registered in WeSuite, so it has to be correct and reachable by your users' browsers when they sign in — not by Selena.

Before you start

RequirementWhy it is needed
Admin access to your Selena organizationOrganization setup is admin-only
A WeSuite admin username and passwordUsed once, to validate the instance. Not stored, and not what users authenticate with
Your WeSuite API URLThe API endpoint Selena calls — usually ends in /api
Your QuoteAnywhere URLBecomes the OAuth callback Selena registers in WeSuite for you, so there is nothing to copy by hand. Not contacted during validation
A publicly trusted TLS certificate, serving its full chainSelena verifies the API's certificate strictly. A missing intermediate is refused before credentials are checked — see certificate chain
The ProgramOptions permission on that admin accountOnly for optional data sync. Without it, setup still completes and sync can be enabled later

Setting up the integration

Setup is two phases: an admin configures the organization once, then each user connects their own account. Both are required before anything works.

Phase 1 — Organization setup

Done once, by an admin, in Dashboard → Integrations → WeSuite. The wizard has three steps.

API configuration

Enter the two URLs and the admin credentials, then choose Validate Connection.

FieldWhat it isExample
WeSuite API URLYour WeSuite API endpointhttps://wesuite.yourcompany.com/api
QuoteAnywhere URLYour QuoteAnywhere front endhttps://quoteanywhere.yourcompany.com
Admin UsernameA WeSuite admin account, for validationadmin-username
Admin PasswordThat account's password — used only for validation—

These are two different systems. Both URLs are parsed before the wizard will advance, so a missing https:// is rejected here rather than failing later.

Validate connection

On success the wizard reports the instance it found — WeSuite Customer ID, system name, API version, and the API URL — which is your confirmation that Selena reached the right instance and not a lookalike.

This step also offers data sync, described below. Leave it as-is if you are not sure; it can be changed at any time.

Complete setup

Choose Complete Setup. The configuration is saved against your organization, its status moves to configured, and users can begin connecting.

Validation checks the credentials against WeSuite live, so a rotated admin password fails at step 1 — see Common Issues for the causes in the order worth checking.

Optional — enable data sync

Data sync copies your WeSuite data — estimates, projects, customers, and more — on a schedule, so Selena's answers are tailored to your business rather than assembled from whatever a single request could reach.

  • It is opt-in, offered during setup and changeable afterwards from the integration page.
  • Frequency is Daily or Hourly, and the panel shows Last synced plus a status of Ready, Syncing, or Failed.
  • It requires the ProgramOptions permission on the validating admin account, because Selena provisions a WeSuite API key for it. Without that permission the option is locked off and reads Data sync unavailable — setup still completes, and everything else works.
  • It can be disabled and re-enabled. Re-enabling issues a new API key and resumes the schedule.

Data sync is the one part of the integration that uses an organization-level key rather than acting as a user. Agent reads and writes never use it. If the panel asks you to reconnect, see Common Issues → Data sync shows "Action required".

Phase 2 — Each user connects their own account

Every user who wants Selena to act in WeSuite goes to Dashboard → Settings → Integrations → WeSuite and connects with their own WeSuite username and password. This is what makes Selena act as them.

From the same place a user can refresh their connection when the WeSuite session ages out, or disconnect entirely.

A user cannot connect before the organization is configured — their status reads not_available. If your whole team is blocked, see Common Issues → Everyone in the organization is blocked at once.

What Selena can do in WeSuite

With the integration connected, Selena can:

Read

CapabilityDetail
Parts catalogYour live catalog, your organization's favorites, and accounting-system parts where those are configured
EstimatesQuote packages and line items, for pricing and review
Customers and contactsAlong with their locations
Projects and opportunitiesIncluding pipeline rolled up by stage

Write

CapabilityDetail
Create an estimateNo duplicate protection on either side — see duplicate writes
Add catalog parts in bulkCarries a duplicate guard, so a repeat is ignored rather than written twice
Add one-time custom partsFor parts that are not in the catalog
Accept BOM resultsParts detected from a drawing or spreadsheet, written straight onto an estimate
Add notesTo an estimate, or to a customer account
Create and update recordsCustomers, contacts, locations, projects, opportunities

Selena always acts as the connected user, using their own WeSuite session. It cannot see or change anything that user could not already see or change, and permissions, visibility, and audit trails in WeSuite stay exactly as they are. The single exception is data sync, which runs on an organization-level API key.

Using Selena with the WeSuite integration

Once connected, the integration is available to Selena's agents automatically — you do not wire anything up per conversation. Asking an agent to price a drawing, find a part, or build an estimate uses your WeSuite connection.

  • Attach the estimate you mean. Type @ in the composer to search your WeSuite estimates and attach one as context. That is how estimate, BOM, and import requests land on the right quote package.
  • Reach for a / command when you know the workflow. /import-bom puts a spreadsheet BOM onto an estimate; /analyze-bom reads an estimate's existing BOM back and reports gaps and incompatibilities.
  • Review before accepting. A BOM import comes back in a panel showing resolved parts, the folder each lands in, and whether it is an add or an update. Nothing reaches WeSuite until you accept.

Two behaviors are deliberate and worth knowing:

Ambiguous part searches stop and ask. When an agent resolves a line item from search text rather than an exact part number, it returns candidates for you to choose from instead of silently picking one — even when there is only a single match. Silently guessing a part is how a wrong item ends up priced into a real quote.

Failed writes are never retried automatically. Selena reports the error and stops. Whether repeating a request is safe depends on the write: line items carry a duplicate guard, while a new estimate or an estimate note has none. If a write's outcome is unclear, check WeSuite before asking again.

Managing the integration

The integration page shows what the organization is connected to — API URL, WeSuite Customer ID, when it was last validated, and who set it up — plus how many users have connected out of the total. That count is the fastest way to spot a rollout that stalled partway.

Re-validate Connection re-checks the instance with current admin credentials. It is what clears a connection_error, and it leaves user connections untouched.

Two different actions exist for turning the integration off, and they are not the same:

  • Disable keeps the organization's configuration and every user connection intact, but stops the integration from doing anything. Reversible without re-entering anything.
  • Delete removes the configuration and all user connections. Turning it back on means running organization setup again and having every user reconnect.

Prefer disable unless you specifically intend to unwind the whole thing.

Connection status reference

Organization status

StatusMeaning
not_configuredNo admin has set the integration up yet
pending_validationThe URL was entered and validation is running
validation_failedSelena could not validate the instance
configuredWorking — users can connect
connection_errorWas working, now failing to reach WeSuite

User status

StatusMeaningWhat to do
not_availableThe organization is not configured yetWait for admin setup
not_connectedThe user has not connectedConnect the account
connectedWorkingNothing
token_expiredThe WeSuite session needs refreshingRefresh, or reconnect
auth_errorWeSuite rejected the credentialsReconnect with current credentials

Each status and what clears it is covered in Common Issues.

Programmatic access

The API exposes the WeSuite integration directly for organizations that want to drive it themselves. Endpoints are grouped as:

  • Organization — /orgs/{orgId}/integrations/wesuite/... for validate, setup, status, revalidate, disable, delete, and connected-user counts
  • User — /users/{userId}/orgs/{orgId}/integrations/wesuite/... for authenticate, refresh, status, and disconnect
  • Working endpoints — estimate search, and the BOM resolve/accept flows

All of them require a Clerk bearer token with an active organization, the same as the rest of the API. A 403 with a valid token almost always means the token carries no active organization — it has to be selected before the token is minted, not passed as a parameter.

Per-endpoint reference documentation — request and response schemas, status codes — is not published yet. The groups above describe the shape of the surface, not a contract. Ask in the Discord before building against it.

Troubleshooting

Every WeSuite failure worth documenting, with its cause and fix, is in one place:

The entries people reach for most:

WeSuite integration FAQs

On this page