← Back to Smokeball Integration

Smokeball Integration FAQ

Everything you need to know about connecting CaseHug with Smokeball. 26 questions answered.

Data & Sync

What data syncs from CaseHug to Smokeball?

CaseHug syncs three types of data to Smokeball: (1) Contacts — client first name, last name, email, and phone number are created as Smokeball contacts. (2) Matters — case title, case number, matter type mapping, and client association are created as Smokeball matters. (3) Documents — all approved intake documents are uploaded to the corresponding Smokeball matter's file system.

Is the sync real-time?

Outbound sync (CaseHug → Smokeball) happens when you manually trigger a sync or when auto-sync fires on document approval. Inbound sync (Smokeball → CaseHug) is real-time via webhooks — Smokeball notifies CaseHug instantly when matters or contacts change.

Does CaseHug import existing matters from Smokeball?

Not currently. CaseHug can pull a list of existing Smokeball matters to check what's already linked, but it doesn't import matters from Smokeball into CaseHug. This is planned for a future release.

What happens if I update a contact in CaseHug after syncing?

Currently, contact updates in CaseHug are not automatically pushed to Smokeball. Re-syncing the matter will not update existing contacts. Update the contact directly in Smokeball for now. Bi-directional contact sync is on our roadmap.

Can I sync multiple matters at once?

Currently, sync is per-matter from the matter detail page. Bulk sync is on our roadmap. For now, use auto-sync on document approval to keep things flowing automatically.

How does duplicate contact detection work?

CaseHug searches Smokeball contacts by email address before creating a new one. If a contact with the same email already exists in Smokeball, CaseHug links the matter to that existing contact instead of creating a duplicate.

Matter Types

How does case type mapping work?

Smokeball has pre-configured matter types organized by practice area and jurisdiction. CaseHug maps each case type to the closest Smokeball matter type by name matching. For example, 'divorce_standard' maps to 'Divorce' in the Family Law practice area. If no exact match is found, CaseHug falls back to the general practice area type.

What if my firm uses custom matter types in Smokeball?

You can set up custom case type mappings in Settings → Integrations → Smokeball → Case Type Mappings. This lets you override the default mapping for any CaseHug case type with a specific Smokeball matter type name or ID.

Does CaseHug support Smokeball's Matters v2 API?

Yes. CaseHug uses Smokeball's Matters v2 API, which became standard as of December 2024. No special API version headers are needed.

How many case types does CaseHug map?

CaseHug has built-in mappings for all 30 case types across 4 practice areas: Family Law (5), Immigration (7), Personal Injury (10), and Estate Planning (8). Custom mappings can extend this to any Smokeball matter type.

Security & Privacy

Does CaseHug store my Smokeball password?

Never. CaseHug uses OAuth 2.0 Authorization Code flow — you sign in directly on Smokeball's website. CaseHug only receives encrypted access and refresh tokens, never your credentials.

How are tokens stored?

Access tokens and refresh tokens are stored in CaseHug's database (Supabase) with row-level security. Each firm can only access its own tokens. Tokens are transmitted over TLS 1.3 and never logged in plaintext.

Is the Smokeball integration HIPAA compliant?

CaseHug is designed to support HIPAA compliance. All data in transit is encrypted via TLS. No PHI is stored in application logs. Access tokens are stored with row-level security. Document content is transmitted directly between storage systems without intermediate caching. Your BAA with CaseHug covers data processed through integrations.

How are webhooks verified?

Smokeball webhook payloads are verified using HMAC-SHA256 signatures. CaseHug computes the expected signature using your firm's webhook secret and compares it to the signature in the request header. Invalid signatures are rejected.

Can other firms see my data?

Absolutely not. CaseHug uses multi-tenant isolation with row-level security. Each firm's Smokeball tokens, sync logs, and webhook events are isolated. There is no cross-firm data access.

What happens when I disconnect?

Disconnecting removes all Smokeball tokens from CaseHug's database and attempts to delete registered webhooks. Your data in both CaseHug and Smokeball is unaffected — only the connection is removed.

Setup & Configuration

How do I get Smokeball API access?

Contact the Smokeball partnership team or your Smokeball account manager to request API access. Mention you're integrating with CaseHug for client intake automation. Approval typically takes 1–3 business days.

Do I need special Smokeball permissions?

You need admin access in Smokeball to authorize the OAuth connection. Once connected, the integration uses the permissions granted during authorization.

Can I connect multiple Smokeball accounts?

Each CaseHug firm connects to one Smokeball account. If your firm has multiple Smokeball accounts (unusual), you'd need separate CaseHug firm accounts for each.

Does this work with Smokeball's desktop app?

Yes. Matters and contacts created through Smokeball's API appear in both the cloud platform and the desktop application. They sync automatically.

How do I enable webhooks?

After connecting, go to Settings → Integrations → Smokeball → Advanced and click "Register Webhooks." This sets up real-time notifications for matter and contact changes.

Troubleshooting

I get "Smokeball integration is not configured" — what do I do?

This means API credentials haven't been set up on our server for your connection. This usually means your firm hasn't received API access from Smokeball yet. Contact support@calmintake.com and we'll help coordinate with the Smokeball partnership team.

Sync shows "failed" status — how do I fix it?

Open Settings → Integrations → Sync History for error details. Common causes: (1) Expired access token — try disconnecting and reconnecting. (2) Rate limiting — wait a few minutes and retry. (3) Network timeout — retry. (4) Missing matter type — configure custom mapping.

Documents don't appear in Smokeball after sync.

Check: (1) The matter has a Smokeball Matter ID on the detail page. (2) The document is in "Approved" status. (3) The document hasn't already been synced (check for smokeball_file_id). Try a manual sync from the matter detail page.

OAuth returns "invalid_state" error.

OAuth state tokens expire after 10 minutes. Go back to Settings → Integrations and click Connect again to start a fresh authorization flow.

I see "429 Too Many Requests" in sync logs.

Smokeball has API rate limits. CaseHug automatically throttles requests and retries with backoff, but very large syncs may temporarily hit limits. Wait a few minutes and retry. If this persists, contact support.

Still have questions?

Our support team is here to help with Smokeball integration setup and troubleshooting.