Ascora Integration
Connect your Ascora account to push estimates straight from Sammy into Ascora as a Quotation. Sammy creates the Quote for you, drops your customer onto it, adds every group as a Section, lands every line item, and attaches your Sammy proposal PDF too.
You can use this either to send the quote to your customer through Ascora, or to anchor a job for backcosting once the work is won — the push is the same either way.
Availability
The Ascora integration is available to Pro plan users. You'll need an Ascora account on a plan that includes API access (most paid Ascora plans do — if your account doesn't, Ascora will tell you when you try to connect).
A Heads-Up About Using Ascora with Xero, MYOB or QuickBooks
Ascora has its own two-way sync to Xero, MYOB and QuickBooks. That means if you push an estimate to Ascora, the resulting invoice flows from Ascora into your accounting platform automatically.
If Sammy is also connected to Xero, you'd get the same invoice in Xero twice — once from Sammy, once from Ascora. To stop that, Sammy will hard-block connecting both at the same time. When you click Connect on the Ascora card, if Xero is already connected, you'll be asked to disconnect Xero first. The same modal fires the other way around.
If you're using Ascora, let Ascora push to your accounting tool. Sammy pushes to Ascora, Ascora pushes to Xero / MYOB / QuickBooks — clean one-way flow, no duplicates.
You can still use Ascora at the same time as ServiceM8 or Simpro — they don't sync to accounting tools themselves, so there's no double-up risk.
Connecting to Ascora
- In Ascora, go to Administration → API Settings and copy your API key
- Back in Sammy, click Settings in the sidebar
- Select the Integrations tab
- Find the Ascora card and click Connect Ascora
- Paste your API key into the Ascora API key field
- Optionally enter an Account label (helpful if you have multiple Ascora accounts — it shows up inside Sammy so you know which one is connected)
- Click Connect
- Pick your defaults:
- Default Job Type — leave blank to use Ascora's account default (usually "Standard Job"), or type any name. If the Job Type doesn't exist in Ascora yet, Ascora will create it.
- Push labour through an Ascora Labour Role — leave off unless you want every untagged labour line priced by one default Ascora Labour Role rate. By default, labour lines push with Sammy's per-line price. (You can also map individual labour lines to specific roles from inside the estimate — see Using your Ascora Labour Roles in estimates.)
- Click Save defaults
Your connection is now active. A webhook is also registered automatically so Ascora can tell Sammy when a Quote status changes.
Optional: Cross-Reference Sammy ↔ Ascora
You can stamp every pushed Quote with the originating Sammy estimate ID, which makes it easy to look up which Sammy estimate produced a given Ascora Quote.
In Ascora, go to Administration → Custom Fields → Quotes and add a new field with:
- Name:
Sammy Estimate ID - Type:
Text Box
Once defined, every future push from Sammy will populate this field on the Ascora Quote. Skip this if you don't need it — pushes still work either way.
Using your Ascora Labour Roles in estimates
Once Ascora is connected, Sammy knows your Labour Roles (Electrician, Apprentice, Labourer and so on) and their hourly charge-out rates. They show up in two places:
Sammy prices labour from your real rates
When Sammy generates or adjusts an estimate, he uses your Ascora charge-out rates as the guide for labour pricing — so an electrician's hours get priced like your electrician, not a generic market rate. When he's used them, he'll mention it in his summary.
When Sammy prices a labour line straight from one of your roles, he also maps the line to that role for you — you'll see the role name on the line, just as if you'd picked it yourself. That means a freshly generated estimate can go straight to Ascora with labour already split by role, no line-by-line mapping needed. Sammy only does this when the line's numbers exactly match the role's rates; anything he isn't certain about is left unmapped for you to map yourself (see below). You can change or remove any mapping at any time — and if Sammy adjusts an estimate later, he never re-adds a mapping you've removed.
Tell Sammy what each role costs you (optional)
Ascora only shares each role's charge-out rate with Sammy — not what the hour actually costs you (the Hourly Estimated Cost you set in Ascora → Administration → Labour Roles stays inside Ascora). If you'd like Sammy to work with your real costs and margins:
- Go to Settings → Integrations, find the Ascora card and tap Edit defaults
- In Your hourly cost per Labour Role, enter what each role costs you per hour (leave any role blank to skip it)
- Tap Save defaults
Once a role has a cost, Sammy prices that role's labour from your real cost with your real margin — the price your client sees still lands exactly on the role's charge-out rate, but your estimate now shows the true cost and true margin underneath, instead of the margin showing as zero.
If Ascora starts sending role costs through their API in the future, Sammy will use those automatically and you won't need to enter them here anymore.
Map a labour line to a role
On any labour line in the estimate editor, hover over the line and tap + Ascora role in the small row of details under the description (on the line's detail strip). Pick a role and Sammy will:
- Set the line's rate and markup from the role — if you've entered the role's cost, the rate becomes your cost with your real markup on top; if not, the rate becomes the charge-out rate with zero markup (it already includes your margin)
- Land the line total on quantity × the role's charge-out rate either way — exactly what Ascora will compute
- Show the role name on the line so you can see it's mapped
When you push the estimate, mapped lines are meant to land in Ascora's Labour tab against the right role — with exactly the same total you see in Sammy — so your Ascora reports split labour cost properly between roles.
Heads up: right now there's an issue on Ascora's side that stops labour lines being filed under the Labour tab, and we're working with Ascora to sort it. Until then, pushed labour lines land with your other items (under Supplies) with exactly the same totals — your quote amounts are unaffected, the lines just aren't split by role inside Ascora yet. Your role mappings in Sammy are safe and will carry across automatically once it's fixed.
A few things to know:
- The line's quantity is treated as hours — same as Ascora does.
- If you change a mapped line's rate or markup, the mapping is removed (the role name disappears from the line). That's on purpose: the mapping is a promise that the line is priced by the role, and once you've changed the numbers it isn't anymore. The line just pushes with your price instead, like any other line.
- Lines inside a kit can't be mapped — kits carry their own pricing.
- To pull in roles you've added or re-priced in Ascora recently, use Refresh rates in the role picker (or re-save your defaults in Settings → Integrations).
If you're on a team, everyone on the team sees the same roles and can map lines on shared estimates.
Pushing an Estimate to Ascora
Once your estimate is ready, you can push it to Ascora as a Quotation.
- Open the estimate
- Click the dropdown arrow next to Send Proposal (or the Ascora button on the metadata strip)
- Select Push to Ascora
- Review the summary — customer name, section count, item count, total
- (Optional) Override the Quote Name or Quote Description if you want them to differ from your Sammy estimate
- Click Push to Ascora
- Wait a few seconds while Sammy creates the Quote, lands the line items, and attaches the proposal PDF
The estimate is sent to Ascora as a SECTIONS-pricing Quotation with all your line items, group structure, and GST.
What gets pushed
| Sammy | Ascora |
|---|---|
| Estimate | Quotation (status: In Progress) |
| Estimate title | Quote Name |
| Scope of work | Quote Description (HTML stripped to plain text) |
| Client | Customer — matched by email, or created if no match |
| Client name | Customer Company Name, Contact First / Last |
| Client's extra contacts | Contacts on the Ascora customer (with their role) — added when Sammy first creates the customer |
| Site address | Address Line 1, Suburb, State, Postcode |
| Groups | Sections (child quotes) |
| Items | Write-Ins on each Section, with per-unit cost and sell price |
| Labour lines mapped to a role | Labour Items on each Section, priced by the role (same total as Sammy) |
| Quantities & unit prices | Per-line on each Write-In |
| GST | Handled by Ascora based on your account's tax settings |
| Sammy proposal PDF | Quotation Attachment |
| Sammy estimate ID | Custom Field "Sammy Estimate ID" (if you set it up) |
After pushing
When the push succeeds, the estimate status changes to In Ascora and an Ascora chip appears on the estimate's metadata strip showing the Quote number (e.g. Q4) and current status. The chip is clickable and reopens the Ascora drawer.
You can keep editing the estimate in Sammy after pushing — Ascora doesn't lock the Sammy estimate. If you change the estimate, you'll see a banner at the top inviting you to re-push.
Finding the Quote in Ascora
Ascora doesn't publish direct per-Quote URLs, so the "View in Ascora" button takes you to your Ascora dashboard. Your Quote will be at the top of the Quotes list (sorted newest-first), with the Quote number we showed you in Sammy.
Re-pushing an Estimate
If you edit the estimate after pushing it, you'll see a re-push banner at the top.
What happens when you re-push depends on the Ascora-side status:
- If the prior Quote is still "In Progress" — Sammy deletes it in Ascora and creates a fresh one. The drawer warns you before doing this. You won't get a stale draft cluttering up your Ascora In Progress list.
-
If the prior Quote has been Sent, Won, or Lost — Sammy creates a brand-new Quotation. The old one stays in Ascora untouched, so anything you've added to it (attachments, notes, status history) is preserved.
-
Open the estimate
- Click the Re-push banner (or open the Ascora drawer)
- Read the confirmation message — it tells you which case applies
- Click Delete & re-push or Push as new Quote
Status Updates Flow Back Automatically
When you mark an Ascora Quote as Sent to Customer, Won, or Lost inside Ascora, the chip on the Sammy estimate updates within a few seconds — Ascora pushes the change to Sammy via webhook. No refresh button to click, no waiting around.
This is the main difference between Ascora and ServiceM8 in Sammy: ServiceM8 needs a manual refresh, Ascora updates itself.
Disconnecting Ascora
- Go to Settings → Integrations
- Click Disconnect next to your Ascora connection
- Confirm
Sammy unsubscribes from the Ascora webhook and removes your API key. Past push history stays in Sammy, and Quotes you've already pushed remain in Ascora. Disconnecting only stops future pushes — it doesn't delete anything.
If you reconnect later (paste the same or a new API key), past customer matches are remembered so you don't get duplicate customers in Ascora.
Troubleshooting
Connection rejected
If the API key is rejected:
- Double-check you copied the whole key from Ascora Administration → API Settings (it's long — easy to miss a character)
- Make sure your Ascora plan includes API access — some entry-level plans don't
- Try generating a new API key in Ascora, then pasting the new one into Sammy
"Disconnect Xero first" modal when trying to connect Ascora
This is intentional — see A Heads-Up About Using Ascora with Xero, MYOB or QuickBooks. Ascora syncs invoices to Xero on its own, so connecting both creates duplicates. Disconnect Xero and Sammy will keep going.
"Multiple matches found" when pushing
If you've got more than one customer in Ascora with the same email address (e.g. duplicates from earlier), Sammy will ask you which one to use rather than guess. Pick one and the push continues — Sammy remembers your choice for future pushes of the same client.
If you'd rather clean up the duplicates in Ascora first, cancel out of the picker, merge or delete the duplicates inside Ascora, and try the push again.
Proposal PDF didn't attach
Ascora caps attachments at around 5 MB. If your proposal PDF is bigger (usually because of lots of high-resolution photos), Sammy will push the Quote successfully but skip the attachment. You'll see a note in the success state telling you why.
You can either:
- Manually upload the PDF in Ascora using the Attachments tab on the Quote, or
- Reduce photo sizes in Sammy's proposal builder before re-pushing
Address shows up in Line 1 only
Sammy tries to parse your site address into Ascora's structured fields (Line 1, Suburb, State, Postcode). If your address doesn't follow the standard Australian shape "Street, Suburb STATE Postcode", Sammy falls back to dumping the whole thing into Line 1. You can clean it up inside Ascora — the Sammy estimate isn't affected.
State field is missing in Ascora
Ascora's API sometimes silently drops state when it doesn't recognise the format. If "VIC" doesn't appear in the State field after a push, edit it directly inside the Ascora Quote — the rest of the address fields are unaffected.
Push fails completely
If a push fails, the drawer will show Ascora's error message. Common causes:
- Estimate has no items — add at least one item before pushing
- Estimate has no client assigned — pick a client first
- Connection broken — your API key may have been regenerated in Ascora. Reconnect in Settings → Integrations.
Need Help?
If you're having trouble with the Ascora integration, contact support and we'll help you sort it out.