
Roofing CRM
Roofing CRM and project pipeline: Ruby can look up jobs and contacts.
Ask Ruby
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})
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)
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.
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.
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.