Blog/tools

AccuLynx API and AppConnections: A Developer's Guide

What the AccuLynx API and AppConnections add-on actually allow: setup cost, endpoints, contact vs job address shapes, and the 1,000-character note cap.

JT
Jake Thompson
Roofbird
September 22, 2026

If you have ever tried to push a lead into AccuLynx automatically, you already know the shape of the problem. AccuLynx is a genuinely good production CRM for roofers. It is not a lead-generation tool, and its API is not designed to be one. This is a buyer's and a developer's guide to what the AccuLynx API and the AppConnections add-on actually let you do, what the setup really costs in time and money, and where the sharp edges are that nobody documents until you hit them.

I am going to be careful here about pricing, because AccuLynx does not publish a public rate card for AppConnections, and I do not have their contract in front of me. If you want the honest version of what contractors report paying for AccuLynx generally, that is a separate post: AccuLynx Pricing Explained: What Roofing Contractors Pay For. What I can tell you precisely is what the API does, because that is a technical fact and it does not change with your sales rep.

1. There are two doors into AccuLynx, and they are not the same door

The first door is the standard REST API. It is documented, it is real, and it is gated behind an add-on called AppConnections. You do not get API access on a base AccuLynx plan. AppConnections is a paid module, quoted per account, and as of writing AccuLynx does not publish the number. Contractors report it being bundled or priced as an upgrade during negotiation, which means the price you pay depends on who you talk to and when.

The second door is the one most roofers actually use: a middleware layer. Zapier-style connectors, or a purpose-built integration from a lead tool, that speaks to AccuLynx on your behalf. The middleware holds the AppConnections entitlement, or uses whatever partner arrangement exists, and you just flip a switch.

Here is the practical consequence. If you are a contractor who wants leads to land in AccuLynx automatically, you almost certainly want door two. If you are a developer building a product that writes into AccuLynx, you need door one, and you need to budget for the AppConnections conversation. Which roofing lead tools integrate with AccuLynx? covers the middleware landscape in detail.

2. What the endpoints actually allow

The AccuLynx API is a write-mostly, object-oriented API. The core objects are Contacts, Jobs, and the custom fields attached to each. The operations that matter for a lead-gen workflow are roughly these:

  • Create contact. You can POST a new contact record: name, phone, email, mailing address. This is the person.
  • Create job. You can POST a job record: the property address, the job type, the assigned rep, the source.
  • PUT job custom fields. You can write into custom fields defined on the job, which is how you get a lead score, a need rating, a hail flag, or a source tag into a field your sales team can actually filter on.
  • Webhooks. AccuLynx can fire webhooks on certain events, so an external system can react when a job changes stage, a contact is updated, or a job is created.

That is the useful surface. Notice what is not on the list: there is no endpoint that reads a roof, scores a property, or enriches an address. The API is a pipe, not a brain. Whatever intelligence you want in your pipeline has to exist upstream of the API call. If you are trying to get a lead score into a job priority field, the score has to come from somewhere that reads imagery, and the API just carries the number. Roofing software that writes lead scores into AccuLynx job priority walks through exactly that pattern.

3. The two address shapes, which will break your first integration

This is the single most common bug in an AccuLynx integration, and it is not obvious until you have shipped something and watched half your jobs land with no property address.

Contacts and Jobs do not share an address shape.

A contact carries a mailing address. That is where the person receives mail. It might be the property. It might be a PO box. It might be the address they moved to three years ago while still owning the rental.

A job carries a property address. That is the physical structure being worked on. It is a different field, on a different object, with a different meaning, and it is not automatically populated from the contact.

So when you create a contact and then create a job, you have to send the address twice, in two different shapes, to two different endpoints. If you only send it on the contact, the job exists with a blank property address and your production team is calling you. If you only send it on the job, the contact has no mailing address and your direct-mail sequence goes nowhere.

The fix is boring and worth doing on day one: normalize the address once in your own layer, then fan it out to both objects, and log both responses so you can see which one silently dropped a field. This is the same discipline that Data Enrichment for a Roofing CRM: What Can Actually Be Added to an Address? argues for, and it is the difference between an integration that works and one that mostly works.

4. The 1,000-character job note cap

Job notes in AccuLynx are capped at 1,000 characters. That sounds like plenty until you try to stuff a full lead brief into one.

A useful lead brief contains: the roof condition verdict, the specific wear signs, the imagery capture date, the estimated squares, the job-value range, the need score, the now score, the why-now line, the owner-occupancy status, the equity estimate, and a door pitch. Written out in plain English, that is comfortably over 1,000 characters. Every time.

So you have three options, and you should pick deliberately rather than discovering the truncation in production:

  1. Truncate ruthlessly. Put the two or three fields that change the rep's behaviour in the note, and push everything else into custom fields. The note becomes a headline, not a dossier.
  2. Split across custom fields. Custom fields do not share the 1,000-character cap in the same way, and they are filterable, which notes are not. A need score belongs in a number field, not a sentence.
  3. Link out. Put a URL to the full record in the note and keep the note short. This is the cleanest option if your upstream tool has a web view.

Whichever you pick, validate the length client-side before you POST. A silent truncation mid-sentence is worse than an error, because nobody notices until a rep reads a half-written brief and trusts it.

5. Webhooks: what they are good for, and what they are not

Webhooks are the part of the API that makes it feel like a real platform. Job created, job stage changed, contact updated. You can build a genuinely useful loop: a job moves to "inspected" and your system fires a follow-up task, or a job is created from a web form and your scoring layer picks it up and writes a priority back.

What webhooks are not is a lead source. They fire on things that already exist in AccuLynx. They cannot tell you which roofs in a ZIP are worth knocking. That work happens before the CRM, and no amount of webhook cleverness substitutes for it.

The honest architecture is: a scoring layer that reads properties and produces a ranked list, an integration layer that writes those properties into AccuLynx as contacts and jobs with the addresses fanned out correctly and the scores in custom fields, and webhooks to keep the two systems in sync afterward. Is There an API to Add Roofing Leads to JobNimbus or AccuLynx? covers the JobNimbus side of the same question.

6. The setup cost nobody quotes you

The AppConnections fee is the visible cost. The invisible cost is the build.

A competent developer wiring up create-contact, create-job, custom-field writes, and webhook handling, with the dual-address normalization and the note-length validation, is looking at a few days of work minimum, plus ongoing maintenance every time AccuLynx changes a field or a webhook payload. That is real money, and it is the reason most roofers do not build this themselves.

The alternative is to use a tool that already has the integration built. Roofbird's AccuLynx integration exists precisely so a contractor does not have to fund a custom build to get scored roofs into their CRM. You scan an area, Roofbird ranks the roofs, and the ones you open land in AccuLynx with the property address on the job, the owner on the contact, and the score in a custom field.

7. Where the homeowner actually comes from

Here is the part that matters more than any endpoint. The AccuLynx API can create a contact with a phone number. It cannot find the phone number. It has no idea who owns the house.

That is the real bottleneck in a roofing pipeline, and it is upstream of every integration question. You can have a flawless AccuLynx build and still be dialing wrong numbers, because the address-to-owner problem was never solved.

Roofbird solves it in the same pass as the roof read. The full property record (owner name, occupancy status, value, year built, last sale, beds, baths, lot, taxes, lender, and an equity estimate) shows on every scanned lead for free. Only the DNC-scrubbed phone and email sit behind a one-click unlock, at 1 credit per 2 roofs. Every number is labeled clear, DNC, or verify, and the workflow is manual dialing only. A lookup that finds no contact never costs a credit. How to Get a Homeowner's Phone Number From an Address goes deeper on that problem.

So the pipeline is: Roofbird reads the roofs and produces the ranked list with owner details attached, the integration carries that into AccuLynx as a contact plus a job with the right addresses and the score in a custom field, and your reps work the list. The API is the pipe. The intelligence is upstream.

FAQ

Q: Does AccuLynx have a public API? A: Yes, but access is gated behind the AppConnections add-on, which is a paid module quoted per account. AccuLynx does not publish a public rate card for it, so the cost depends on your contract and negotiation. The API itself supports creating contacts, creating jobs, writing job custom fields, and receiving webhooks.

Q: What is the difference between a contact address and a job address in AccuLynx? A: A contact carries a mailing address (where the person receives mail) and a job carries a property address (the structure being worked on). They are separate fields on separate objects and are not auto-synced, so an integration must send the address to both endpoints or one of them will be blank.

Q: Is there a character limit on AccuLynx job notes? A: Yes, job notes are capped at 1,000 characters. A full lead brief with condition, scores, imagery date, and a door pitch will exceed that, so put the headline in the note and push the rest into custom fields, which are filterable and do not share the same cap.

Q: Can the AccuLynx API find a homeowner's phone number? A: No. The API can store a phone number you already have, but it cannot look one up. Owner contact details come from a separate enrichment step, and Roofbird provides DNC-scrubbed phone and email at 1 credit per 2 roofs, with free property records on every scanned lead.

Q: What does AppConnections cost? A: AccuLynx does not publish AppConnections pricing, so any specific number you see quoted online should be treated as a reported figure, not a rate card. Contractors report it being bundled or priced as an upgrade during the sales conversation. The reliable way to know is to ask your rep directly and get it in writing.

Next steps

If you are evaluating this for your own shop, do three things in order. First, ask AccuLynx for the AppConnections price in writing, because that number decides whether a custom build is even on the table. Second, if you are building, normalize your addresses before you write a line of integration code, and validate note length client-side. Third, if you are not building, look at what a pre-built integration gets you. You can see a live scored area without signing up at see-it, compare plans at pricing, or read how the scoring works at how-it-works. The API is a pipe. Make sure something smart is feeding it.

New in Roofbird

Now with the homeowner's contact details on every lead

Finding the roof is half the job — you still have to reach the owner. Roofbird now unlocks the homeowner's name, phone, email, and mailing address on any lead, every phone DNC-scrubbed so you know who's safe to call, plus whether they're an owner-occupant or an absentee owner. No skip-tracing tools, no bought lists: find the roof, get the owner, call or mail the same day.

Written by

Jake Thompson

Roofbird

Have a question about anything in this post? Reach the Roofbird team at support@roofbird.ai.

Try Roofbird — 10 free leads in your area

See a sample dashboard for DFW first, no signup needed. Trial loads 10 free pre-scored leads in your own service area.