Integration · Roofing CRM

Roofbird leads, inside AccuLynx.

AccuLynx already has a column your team sorts by every day. Roofbird's ranking drives it — so the best roofs rise to the top of a list nobody has to be trained to read.

AccuLynx is where established roofing companies run the whole job, and new data bolted onto a platform that deep lands where nobody looks. A custom field on a job screen gets ignored.

So Roofbird uses a field your team already filters on: the native job priority. The worst roofs in an area come in Urgent, the next tier High, the rest Normal. Nothing to configure, nobody to train.

One thing first: AccuLynx only issues API keys to accounts with their AppConnections add-on enabled. That is their requirement, not ours, so turn it on first or nothing here will connect.

How to connect AccuLynx to Roofbird

  1. 1

    Enable AppConnections in AccuLynx

    In the AccuLynx Market, open Add-Ons, find AppConnections and enable it. Until this is on, AccuLynx will not create an API key for anyone — this is the step people get stuck on, so do it first.

  2. 2

    Create a key and paste it into Roofbird

    With AppConnections on, create an authorization key named Roofbird and paste it into Roofbird's Integrations page. We read your contact types, your lead sources and your state list once, so that later pushes do not have to guess at any of them.

  3. 3

    Make a lead source called Roofbird

    AccuLynx does not allow a lead source to be created over the API, only used. So make one in AccuLynx named Roofbird and we will attribute every lead to it, which is what makes your source reporting tell the truth. Skip this and everything still works, the leads just arrive without a source.

  4. 4

    Send a batch and sort by priority

    Send your best leads from a scan area. Each one arrives as a contact and a job, with the assessment in the job notes and priority set from the rank. Filter your AccuLynx job list to Urgent and you are looking at the worst roofs we found.

  5. 5

    Map custom fields if you want the numbers on the job

    If you keep custom fields on jobs, map Roofbird rank % and anything else you want as its own column. AccuLynx identifies custom fields internally rather than by name, so we read your field list from your account and you pick from it — there is nothing to type twice.

Why a lead becomes two records

AccuLynx requires a contact before a job can exist, so a lead is two writes: the person, then the work. That is a reasonable model: a homeowner is not a job, and can have several. If the contact is created and the job write then fails (a timeout, a rate limit, a network blip), a naive retry leaves a second copy of the homeowner. We keep the contact id from the first attempt, so the retry finishes the job instead of duplicating the person. Custom fields are a third write, and a failure there is non-fatal on purpose. By then the job exists with its notes and priority, which is nearly all of the value.

What arrives on the job, and what had to be budgeted

The job notes carry the assessment: the rank, why this house now, a pre-written opener, roof condition, material, estimated squares, the job value range and satellite and Street View links. AccuLynx caps job notes at a thousand characters and text custom fields at five hundred. We build the note in priority order and stop at the cap ourselves, because a vendor truncation cuts the end, which is where the links live.

Addresses, and a detail that catches integrations out

AccuLynx shapes an address two ways in the same API version: on a contact's mailing address, state and country are internal ids; on a job's location address, they are plain strings. We resolve their state and country tables once when you connect and keep both forms, which is the sort of thing that is invisible when it works and produces a stream of validation errors when it does not. Phone numbers must be exactly ten digits, so anything that does not normalise cleanly is dropped rather than failing the lead. Every Do Not Call registry number is marked not textable, and the note states how many there are.

FAQ

›Why can't I create an AccuLynx API key?

Because AppConnections is not enabled on the account. AccuLynx gates API keys behind that add-on, so enable it in the Market under Add-Ons and the key option appears. This is the single most common reason an AccuLynx integration will not start.

›How does Roofbird decide Urgent, High or Normal?

From the comparative rank inside the scan area, plus whether the lead carries a timing signal. The worst roofs and anything with a live trigger come in as Urgent, the next band as High, the remainder as Normal. You can turn the behaviour off if your team uses priority for something else.

›Will this overwrite notes my team wrote?

No. A lead whose details have not changed is skipped entirely rather than re-sent, and the feature that reads your existing AccuLynx records writes only to custom fields you explicitly mapped — never to notes. Records you already own are yours.

›Do the leads come in as jobs in my production pipeline?

They come in as jobs at the earliest milestone, which is what a lead is. Nothing enters production, nothing is scheduled, and no estimate is created. It is a person and an address with a reason to visit attached.

›Can Roofbird score the leads already in AccuLynx?

Yes, and it is usually the more interesting direction. Point it at the records you already have and it reads every roof and hands back who is worth chasing now, from a list you already trust and already have the phone numbers for.

Read next

See it in your AccuLynx job list

Enable AppConnections, connect a key, and send one scan area's worth of leads. Filter to Urgent and judge the ranking on your own streets.

Get started free →