The software toolchain platform

We connect your apps and data, then build the tools and AI agents your business runs on.

Sources
10
Records today
48,215
Held for review
3
Latency
10 ms

Replace the spreadsheets with a connected platform

We connect the apps and files you already use, check the data as it comes in, and build the portals, apps and dashboards your team and customers work in.

Connect
Every app, file and data source
Clean
Checked and sorted as it arrives
Build
Portals, crew apps, dashboards and agents
BeforeAfter
Drag the divider to compare.

Intelligent tools, chained together

Our own products for service, system design, sales, permits and websites. Each one shares its data with the others and with the platform we build for you.

In developmentsmart-service.toolchain.software

Smart Service

Watches every solar system you service and sees each problem through: the issue is opened, the visit booked, the homeowner kept informed, and the work recorded on the system’s history.

Event loglive
  1. 08:19MicroPower generation off by commandsuppressed
  2. 08:18GatewayTelemetry sync OKsuppressed
  3. 08:17MicroDevice failed to report, 15 min in daylightR-MICRO
  4. 08:16MicroAC voltage out of range, grid telemetrysuppressed
  5. 08:15MicroDevice failed to report, clearedsuppressed
Issues1 new
  • Microinverter offlineKissimmee, FL · R-MICROAssigned to Alex R.
  • Meter not reportingOcala, FL · R-METERNew
In development[name].toolchain.software

CRM for solar, roofing and construction

Leads, site inspections, proposals, signed jobs and system service. Connects to Estimate, the permit lead finder and the other products, so a job carries their data.

Lead1
Example CoReroof$18,400
Inspection1
Harbor DentalSolar PV$42,600
Proposal1
J. AlvarezSolar thermal$12,900
Signed1
Northside StorageMetal roof$66,000
Service1
M. ChenReroof$15,200
In development[name].toolchain.software

Permit lead finder

Indexes city and county building portals for new permits and watches them for changes, so each permit becomes a lead for the trades that bid on it.

PermitWhereValueLead for
ReroofFresno, CA$21,000Roofing
Solar PVMesa, AZ$34,500Solar
Water heaterBoise, ID$4,800Solar thermal
New buildAustin, TX$412,000Construction
In development[name].toolchain.software

Website builder

Websites for contractors and local businesses, built from blocks. Enquiries go straight to the CRM.

  • ✓Header
  • ✓Hero
  • ✓Services
  • ✓Reviews
  • ✓Contact form

Workflows from leads to reviews

Our products pass each job along. A new permit becomes a lead, the lead an estimate, the signed estimate books a crew, the invoice goes out from the same record, and the paid customer is asked for a review.

  1. 01

    Permit

    A new filing on a city or county portal is matched to your trade.

  2. 02

    Lead

    Every enquiry lands in one place, with where it came from.

  3. 03

    Estimate

    Measurements and current prices fill the estimate.

  4. 04

    Schedule

    The signed estimate books a crew.

  5. 05

    Invoice

    The invoice goes out from the same record.

  6. 06

    Review

    Once it is paid, the customer is asked for a review.

AI agents that handle the follow-up

Built into the platform: data is checked as it arrives, agents work through the routine tasks, and every action is logged with who took it.

Each source runs on a schedule and each fetch is logged. Rejected records are kept, along with the rule that rejected them.

--- incoming/ord_10484.json
+++ stored/ord_10484.json
"customer": " example co ",
"customer": "Example Co",
"total": "1,240.00",
"total": 1240.00,
"ship_date": ""
"ship_date": null,
"status": "held", "reason": "missing ship_date"

Rules live in one config file you can change while it runs; each edit is validated and backed up first. Records that can’t be sorted with confidence go to a review queue.

rules.toml

[hold]

missing_required = "review"

min_confidence = 0.8

[hide]

duplicate = true

older_than_days = 14

Agents read documents, price line items and check applications, then hand anything they can’t resolve to a person.

Price a roof estimaterun 2048Passed
  1. 09:41:05Triggerest_2210 created from a roof measurement report
  2. 09:41:07CollectorFetched supplier prices for 32 squares of shingles
  3. 09:41:09ModelMatched all 14 line items to supplier prices
  4. 09:41:11ChecksMargin above target, prices under 7 days old
✓est_2210 priced and sent to the customer portal

Each action is logged with who took it (the system, an agent or a person) and the rule that matched.

An example audit log
TimeActorActionRule
09:41:03SystemHid sku_7731duplicate
09:41:06AgentFlagged acct_2210address_mismatch
10:02:17OperationsCleared the flagmanual

Internal tools and data pipelines

Beyond our products, we build tools for a specific part of your business, and the pipelines that keep them current.

Finance and reporting

Bank, payment and payroll data matched, reviewed and posted to the ledger as it arrives.

Cash and ledgerliveOperating cash 284,120.55
Collected
1,284
Matched
1,251
Held for review
2
Posted
1,249
Recent transactions in an example finance pipeline
TimeTransactionAmountResult
09:41:02Stripe payout4,812.40Matched INV-2209, posted
09:40:57Wire in18,400.00Held: no matching invoice
09:40:51Bank fee−25.00Coded to Fees, posted

Data pipelines

On-chain and market data collected, decoded and passed to models and dashboards as it lands.

Data pipelineliveEthereum
Raw
  1. 0xa9059cbb00000000000000000000000091c4…
  2. 0x23b872dd0000000000000000000000004e18…
  3. 0x095ea7b300000000000000000000000068b3…
  4. 0xa9059cbb000000000000000000000000c7f0…
  5. 0xa9059cbb00000000000000000000000091c4…
Decoded
Type
Transfer
From
0x7a…3f · Exchange wallet
To
0x91…c2 · Customer
Amount
12,500 USDC

Published

Transfers a minute
247
Active wallets
18,412
Flagged for review
1

Works with the tools you already use

Connect the services your business runs on today, and add new ones whenever you need them.

  • Shopify
  • Stripe
  • QuickBooks
  • HubSpot
  • Zendesk
  • Gmail
Orders pipelineliverun 2048
Records arriving in an example pipeline
TimeSourceRecordResult
09:41:02orders apiord_10482valid
09:41:02orders apiord_10483valid
09:41:03warehouse sftpsku_7731duplicate, dropped
09:41:05orders apiord_10484missing ship_date, held
09:41:06crm exportacct_2210valid
09:41:08orders apiord_10485valid
Accepted
1,200
Held for review
3
Dropped
14

ord_10484 is held: ship_date is empty. Assigned to operations for review.

  • Customer portal
  • Internal tools
  • Dashboards
  • Agents
  • Slack
  • Salesforce
  • Stripe
  • Shopify
  • Google Sheets
  • OpenAI
  • Zendesk
  • Xero
  • Notion
  • Gmail
  • HubSpot
  • QuickBooks
  • Square
  • Airtable
  • Anthropic
  • Twilio
  • Jira
  • Two-way sync

    Customers, orders and invoices stay the same in your apps and in the services you use.

  • Event triggers

    A paid invoice, a new ticket or a signed form starts the next step on its own.

  • Custom connections

    Services without a public API are connected through exports, webhooks or their database.

Let’s build it

Tell us what your business does, which tools you use and where the time goes. We’ll come back with how we’d connect it.

  1. 01

    Call

    You tell us how the business runs and where the time goes.

  2. 02

    Map

    We map your systems and data, and where they should connect.

  3. 03

    Build

    We build the first app, pipeline or integration and connect it.

  4. 04

    Run

    We run and support it, and add to it as the business grows.

New messageexample

To mail@toolchain.software

Subject Quotes take us two days

We’re a roofing company with four crews.

Every estimate is built by hand from the measurement report and a supplier price sheet.

We use HubSpot, QuickBooks and a lot of spreadsheets.

Could this be faster?

Send it to

  • What the business does and how many people use the tools
  • The software and spreadsheets you use today
  • The task that takes the most time