Skip to content
Skip to main content
Novel Systems home
Ecosystem

It talks to what you already run

Your sellers are not leaving Salesforce and your controller is not leaving QuickBooks. Neither should have to. Here are 15 native connectors — 8 of them writing in both directions — published with the field mapping, the auth method, the cadence, and the system of record for every entity they touch.

90 mapped fields are listed by name on this page. A logo wall tells you a partnership exists; it does not tell you whether a quote becomes an invoice.

SOC 2 Type II audit underway · PIPEDA compliant · Canadian data residency · ca-central-1 · SAML 2.0 single sign-on

CRM & Sales Engagement

4 connectors

Your sellers keep working the pipeline they already know. The quote is built here and the opportunity value, stage, and close date land back there without anybody re-keying a number.

Call Intelligence & Communication

3 connectors

The scope of work is agreed on a call, not in a form. These connectors take what was said on the call and turn it into configured line items an estimator can price.

ERP & Financial Operations

5 connectors

Your controller does not change systems because you bought quoting software. Invoices, job cost, and revenue post into the ledger of record with the tax treatment already correct.

Field Systems & Routing

3 connectors

The things that decide a crew's day are not in anybody's CRM: the certification on a driver, the addressing scheme on a motor, the traffic between two sites. These are the connectors the technician feels.

6 of 15 connected in Sample: Electrical

Every connector here is first-party

Every connector here is written and maintained by Novel Systems against the vendor's published API. None is a reseller listing, a marketplace entry, or a middleware subscription resold at a markup — when a sync breaks there is no third party to escalate to. 9 of 15 are enabled in configuration on any tenant; the rest are scoped before they are switched on, and every card says which it is.

The connected states and sync times above describe a sample workspace, not a live tenant — they are illustrative, and no figure on this page is read from a running integration. The field mappings, directions of travel and auth methods behind each card are the real contract.

Salesforce

CRM & Sales Engagement

Two-way syncGenerally available

Opportunities and quotes stay in step, with the CRM owning the deal and CPQ owning the price.

Last synced 2 mins ago

Salesloft

CRM & Sales Engagement

InboundGenerally available

Cadence activity and reply sentiment land on the quote, so the estimator knows the deal is warm.

Last synced 14 mins ago

Apollo.io

CRM & Sales Engagement

InboundGenerally available

Sequence replies route to the account owner with the site and trade already attached.

Configure sync

LinkedIn Sales Navigator

CRM & Sales Engagement

InboundGenerally available

Buying-committee changes at your key accounts surface against the account, not in a separate tab.

Configure sync

Avoma

Call Intelligence & Communication

InboundLimited release

Parses the scope agreed on a call into draft CPQ line items, each one linked to the sentence it came from.

Last synced 6 mins ago

RingCentral

Call Intelligence & Communication

Two-way syncLimited release

Inbound service calls open against the right site, and technician ETA texts go out on your own number.

Last synced 9 mins ago

Microsoft Teams

Call Intelligence & Communication

OutboundGenerally available

Approvals and dispatch escalations arrive as adaptive cards that can be actioned without leaving Teams.

Configure sync

QuickBooks Online

ERP & Financial Operations

Two-way syncGenerally available

Completed work becomes an invoice with HST already mapped to the right tax code and account.

Last synced 11 mins ago

QuickBooks Desktop

ERP & Financial Operations

Two-way syncImplementation-led

The same invoice posting for Enterprise and Premier Contractor Edition, over the Web Connector.

Configure sync

Sage 300 CRE

ERP & Financial Operations

Two-way syncImplementation-led

Job cost actuals, committed cost, and WIP post against the real job and cost code structure.

Configure sync

NetSuite

ERP & Financial Operations

Two-way syncImplementation-led

Multi-subsidiary revenue recognition, projects, and inventory across entities and currencies.

Configure sync

Stripe

ERP & Financial Operations

Two-way syncGenerally available

An approved quote becomes a finalised Stripe invoice, and — on request — a hosted card page carrying the same integers.

Last synced 4 mins ago

DALI Alliance Product Registry

Field Systems & Routing

InboundGenerally available

Checks every specified driver and controller against the certification the spec asked for, before the quote goes out.

Configure sync

Somfy TaHoma & Open API

Field Systems & Routing

Two-way syncLimited release

Motor inventory, channel plan, and position — with RTS honestly marked as having no feedback.

Configure sync

Google Maps Platform

Field Systems & Routing

InboundGenerally available

Swaps the routing model's estimated drive time for observed traffic, and leaves the stop overhead alone.

Configure sync
Live status

Which of these you could connect today

Everything above describes what a connector does. It does not tell you whether pressing Connect on this deployment reaches a consent screen or reaches nothing — and those are different questions with different answers. The three system-of-record connectors report their own state through a public endpoint, and the panel below is that endpoint’s answer, read when this page was last built rather than written into it.

3 of 15 connectors answer here — the ones that hold the ledger, the opportunity and the payment. The rest are implementation-led and start with a scoping call either way.

Stripe

Live for every tenant

Stripe runs on our account and is live for every tenant.

QuickBooks Online

Not connectable here yet

QuickBooks Online is built and not yet connectable: this deployment holds no QuickBooks Online application credentials, so there is no consent screen to send you to.

Salesforce

Not connectable here yet

Salesforce is built and not yet connectable: this deployment holds no Salesforce application credentials, so there is no consent screen to send you to.

Derived from the adapters themselves, not from a table someone maintains. The endpoint is GET /api/connectors, it needs no key, and it is documented in the published OpenAPI document. It reports no customer data and does not name the environment variables behind a gap; those stay behind an admin token, where they belong. If a connector says it is not connectable here yet, that is us saying so on the page that sells it.

Check it yourself

The Stripe connector, running, on this page

Everything above is a description. A field-mapping table and a green badge are things you have to take our word for, and an integrations page is exactly where a buyer has learned not to. So this one does the thing: it creates a Checkout Session in our Stripe test account, against a quote it approves in our sandbox tenant, and prints the object it got back.

The objects this adapter constructs, listed on its card above and not retyped here: Customer, InvoiceItem, Invoice, Checkout Session, PaymentIntent. Approval is the event that finalises the invoice; the hosted page is a second way to pay the same quote, not a different one.

All of it also stands alone at the billing sandbox — same invoice, same button, same test card, without the rest of the catalogue in front of it.

A finalised Stripe test invoice

No answer arrived from the sandbox API when this page was generated.

Billing sandbox — Stripe test mode

Try a test payment: create a real Stripe Checkout Session

Pressing that button approves a quote in our sandbox tenant, which is the event that makes the Stripe adapter find or create a customer, write invoice items, and finalise an invoice. It then asks the API for a hosted payment page against the same quote. Nothing runs until you press it, because all of that leaves objects behind in a real Stripe account.

Stripe mode

Test mode. Every object this button creates carries a cs_test_ or in_ id in our Stripe test account, and the mode printed after a run is read off the object itself rather than off a sentence here.

Test card

4242 4242 4242 4242

Stripe’s published test card. Any future expiry, any CVC, any postal code. No money moves — the charge exists only in our test account.

Nothing has been created yet. The panel fills in with the session id, the amount, the expiry, the payment link, and the finalised invoice — its number, its line items, its HST line and its total — once you run it.

What test mode maps to — and what it does not

What Stripe bills here
One approved quote, for one of your customers, as one invoice. The adapter runs on quote approval and writes a Customer, an invoice item per approved line, an explicit tax line, and a finalised invoice. Optionally a Checkout Session against the same quote, only when somebody asks for one.
What Stripe does not bill here
Your Novel Systems subscription. Starter Operator, Growth Contractor and Enterprise Fleet, the implementation fee, and seat and vehicle overage at $45 and $25 per month are contracted and invoiced directly — there is no Stripe Product, Price or Subscription behind any of them, and no recurring-billing model in the schema. A tier is not a price object in this account and this page will not imply it is.
How the amounts are set
Each line is sent as an explicit integer amount in cents, taken from the approved quote. Stripe is never handed a unit price and a quantity to multiply, because a recomputed line lands a cent away from the document the customer signed.
How HST is handled
Ontario HST at 13% is posted as its own invoice line rather than folded into the total, and the same is done on the Checkout Session. The line's description comes from a single constant that the read-back path also matches on, so the rate cannot move on one side only. Stripe Tax is not enabled on this account: it computes zero until a Canadian registration is configured, and a silent zero on a Canadian invoice is worse than a line you can see.
How test mode is configured
The backend holds one Stripe secret key as a server-side environment variable and nothing else declares a mode. Whether an object is test data is read off the object — the cs_test_ prefix on a session, the livemode flag on an invoice — so the badges above cannot be stale, and a hosted payment or invoice link is withheld unless the artifact itself reports test mode.

Plan prices, included allowances and the overage rates quoted above are published on the pricing page, which is the same module this section reads them from.

The call goes to this site’s own route, which holds one sandbox credential server-side; your browser never sees a key and is never asked for one. The endpoint underneath is POST /api/v1/quotes/{id}/checkout-session for the payment page and GET /api/v1/quotes/{id}/invoice for the invoice, both documented in the published API reference alongside the webhook events that close the loop. What is not built, said here rather than found later: subscriptions, payouts and refunds. No code calls those APIs.

The one that changes the workflow

Avoma: the scope was agreed on the call, so build the quote from the call

On a commercial job the scope is settled verbally — a walkthrough, a site call, fifteen minutes with a facilities manager — and then somebody retypes it from memory two days later. That gap is where margin dies. The Avoma connector runs the transcript through the same catalogue the CPQ engine prices from and proposes draft line items with quantities, dimensions, and product families already resolved.

Every derived line carries a citation: the transcript offset and the sentence that produced it. Nothing auto-prices and nothing auto-sends — a draft line is proposed, never committed. That is the difference between an assistant and a liability.

Direction
Inbound
Mapped fields
10
Cadence
Webhook on transcript-ready, typically 4–8 minutes after the call ends
How the connections behave

The four things an IT reviewer asks

Integration is where a platform quietly becomes a risk: a token with too much scope, a write with no owner, a partial sync nobody noticed. These are the answers, and they are the same on every connector in the catalogue.

Entity mapping is modelled during implementation by Novel Systems, against your own chart of accounts, cost codes, and price book. It is the part of onboarding that takes the longest and the part that makes every figure above mean something.

Scoped credentials, never a shared admin login

Every connector authenticates with the narrowest grant that works — 6 distinct auth methods across the catalogue, each scoped to the object types listed on its card. A token that can do everything is a token that eventually does.

A declared system of record for every entity

Bidirectional sync without a declared owner is two systems taking turns overwriting each other, and the customer finds out which one won at month end. Each connector names who breaks the tie, per entity, and the drawer shows it before you connect.

Published cadence, including the slow ones

QuickBooks Desktop polls on a 30-minute Web Connector interval and Sage 300 CRE batches hourly. Those are stated here rather than discovered in week three, because a customer who plans around a real interval is not disappointed by it.

Every sync is an audit entry

Writes are idempotent on an external id or event id, so a replayed webhook updates one record instead of creating a second. Failures raise an exception rather than posting a zero — a silent partial sync is the expensive kind.

Bring us the stack you already run

Tell us which CRM, which ledger, which phone system, and which control platform your crews commission, and we will walk the field mapping with you against your own objects before anything is signed. If a connector here does not carry a field you depend on, that is a better thing to find out now.

Bidirectional ERP sync is a Growth Contractor and Enterprise Fleet capability; standard events and webhooks are on every tier. The comparison matrix on /pricing states which is which.