JobNimbus logo

JobNimbus

Roofing CRM

Roofing CRM and project pipeline: Ruby can look up jobs and contacts.

29 tools
API KEY
Reads by default, writes opt-in

Ask Ruby

“What's sitting in my pipeline this week?”
“Look up the contact and job for the Smith roof.”
“Which jobs are stuck waiting on approval?”
“Show estimates sent but not yet signed.”
What Ruby can do

24 read tools

Ruby reads from JobNimbus and grounds her answers in your data. Every connection starts read-only: she surfaces, summarizes, and drafts, and your team takes the action.

Get contact

Retrieve a Contact (GET /api1/contacts/{jnid})

List contacts

Retrieve ALL Contacts (GET /api1/contacts)

Get job

Retrieve a Job (GET /api1/jobs/{jnid})

List jobs

Retrieve ALL Jobs (GET /api1/jobs)

Get tasks

Retrieve a Tasks (GET /api1/tasks/{jnid})

List tasks

Retrieve ALL Tasks (GET /api1/tasks)

Get activity

Retrieve an Activity (GET /api1/activities/{jnid})

List activities

Retrieve ALL Activities (GET /api1/activities)

Get list of file attachments

Retrieve List of File Attachments (GET /api1/files)

Get product

Retrieve a Product (GET /api1/v2/products/{jnid})

List products

Retrieve ALL Products (GET /api1/v2/products)

Get materialorder

Retrieve a MaterialOrder (GET /api1/v2/materialorders/{jnid})

When you turn writes on

5 write tools, off by default

Let Ruby update your CRM records, not just read them. Your workflows, statuses, and lead sources stay off limits either way, as do estimates and invoices. A connection narrowed to specific JobNimbus locations stays read-only, because we can filter what it reads but not where it writes.

An admin switches a connection to read-write in Settings > Integrations. From then on every write waits for a human’s approval before it leaves, by default, and every one lands in your audit log with what changed.

Update contact

Changes data in the connected account. Update a contact Change fields on an existing contact. Only the fields you send are changed. Get the jnid from search_contacts or get_all_contacts. CAUTION: JobNimbus has no delete endpoint. Sending is_active=false REMOVES the record from the customer's active list, so never send it to 'clean up' or 'archive' something unless the user explicitly asked for that record to be deleted. (PUT /api1/contacts/{jnid})

Create contact

Changes data in the connected account. Create a contact Create a new contact (a customer or lead). `record_type_name` must be one of the contact workflows configured in this account and `status_name` a status inside it; read them from get_account_settings rather than guessing. At least one of first_name, last_name, display_name, or company is required. Search existing contacts first so you do not create a duplicate. (POST /api1/contacts)

Update job

Changes data in the connected account. Update a job Change fields on an existing job. Only the fields you send are changed. Get the jnid from search_jobs or get_all_jobs. CAUTION: JobNimbus has no delete endpoint. Sending is_active=false REMOVES the record from the customer's active list, so never send it to 'clean up' or 'archive' something unless the user explicitly asked for that record to be deleted. (PUT /api1/jobs/{jnid})

Create job

Changes data in the connected account. Create a job Create a new job (a project). `record_type_name` must be one of the job workflows configured in this JobNimbus account and `status_name` must be a status inside that workflow, so read them from get_account_settings first rather than guessing. Search existing jobs first so you do not create a duplicate. (POST /api1/jobs)

Create activity

Changes data in the connected account. Log an activity (note) on a record Record a note or activity against an existing job or contact. This is the safe way to write down what happened: it is additive and changes no existing field. `primary` names the record the note belongs to. (POST /api1/activities)

Why connect it to Ruby

Built for restoration, not bolted on.

Grounded answers

Ruby reads JobNimbus live and cites what she found, so answers reflect your actual data, not a stale export.

Reads by default

Every connection starts read-only. Ruby surfaces and drafts while your team takes the action; writes are opt-in per connection, human-approved by default, and always logged.

Managed, secure auth

Connect with one click. Tokens are encrypted and scoped per company; revoke access any time.

Knows restoration

Ruby understands jobs, claims, drying logs, and AR, so JobNimbus data lands in the right operational context.

Use it from anywhere

Connect once, then just ask.

Connect JobNimbus once in Ruby. Ask in the Ruby app, or bring the same secure connection into the assistant your team already uses.

Ruby

Ask in the Ruby app and get an answer grounded in JobNimbus and the rest of your connected stack.

Claude

Bring the same secure JobNimbus connection into Claude so it can answer with your live data.

ChatGPT

Use JobNimbus from ChatGPT with the same per-company, permissioned access Ruby uses.

Frequently asked questions

Do I need developer credentials to connect JobNimbus?

You paste an API key from your account in Settings > Integrations. There is nothing to build; Ruby stores it encrypted and scoped to your company.


Can Ruby change anything in JobNimbus?

Not unless you turn it on. Every JobNimbus connection starts read-only. An admin can switch a connection to read-write in Settings > Integrations; from then on each write Ruby makes waits for a human's approval before it leaves (by default; the same admin can switch that off) and is recorded in your audit log either way.


Is my JobNimbus data secure?

Credentials are encrypted at rest and access is scoped per company. You can revoke the connection at any time from Settings > Integrations, which immediately cuts Ruby off.


Can I use JobNimbus alongside my other tools?

Yes. Ruby reasons across every tool you connect at once, so she can tie JobNimbus to your CRM, accounting, email, and documentation in a single answer.