Zapier
Reference implementation of a Zapier integration with Efimis. It uses the REST API for searches and actions, and webhooks to start Zaps when events occur in Efimis.
Capabilities
Section titled “Capabilities”- Start a Zap when an Efimis webhook event is delivered.
- Find clients and matters, or get one by ID.
- Create and update matters.
- Populate Zapier fields from live Efimis divisions, matter types, clients, matters, and billing contacts.
The webhook trigger accepts supported Efimis event types, including events for clients, matters, invoices, and work items. Use fully qualified Efimis event names, for example Efimis.Mk2.Accounting.V1.MatterUpdated. The integration translates these to the current API subscription identifiers.
Source code
Section titled “Source code”github.com/efimis-dev/efimis-zapier-integration
The repository includes a Dev Container, automated tests, Zapier validation, and anonymised static samples. Its README contains the complete deployment and maintenance instructions.
Before you start
Section titled “Before you start”You need:
- An Efimis sandbox tenant and integration credentials.
- A Zapier developer account.
- Git and either the repository’s Dev Container or Node.js 22 with
zapier-platform-cli19.1.0.
Your Efimis integration credentials include a client ID, client secret, API scope, regional API URL, and authentication URL. Contact connections@efimis.com if you need sandbox access or credentials.
Use sandbox credentials while deploying and testing the integration.
Deploy the integration
Section titled “Deploy the integration”Clone the repository, open its src directory, and install the locked dependencies:
git clone https://github.com/efimis-dev/efimis-zapier-integration.gitcd efimis-zapier-integration/srcnpm ciLog in to Zapier, then register a new private integration or link an existing one:
zapier-platform loginzapier-platform register "Efimis"Use zapier-platform link instead of register when the integration already exists. Both commands create src/.zapierapprc; never commit that file.
Push the first private version:
npm run checkzapier-platform pushZapier versions are immutable. Increment the package version before each later production-shaped push, then rerun the checks:
npm version patch --no-git-tag-versionnpm run checkzapier-platform pushConfigure the version
Section titled “Configure the version”Set these environment variables under Build → Advanced for the deployed version in the Zapier Developer Platform:
| Variable | Value |
|---|---|
API_URL |
Regional Efimis API origin, such as https://api.au.efimis.com or https://api.uk.efimis.com. Do not include a firm alias or /api/v1. |
AUTH_URL |
Complete OAuth token endpoint supplied with the integration credentials. |
SCOPES |
OAuth scope supplied with the integration credentials, typically ending in /.default. |
CLIENT_ID |
Efimis integration client ID. |
CLIENT_SECRET |
Efimis integration client secret. |
Environment variables are version-specific. Confirm them after each push and never commit credentials or .env files.
The firm alias is connection-specific, not an environment variable. Each user enters their firm_alias when they connect Efimis in Zapier.
Configure a webhook trigger
Section titled “Configure a webhook trigger”Each Webhook Event trigger requires:
- A comma-separated list of fully qualified Efimis event names.
- A newly generated random GUID as its webhook secret.
Generate a different webhook secret for every Zap. Do not reuse the Efimis client secret, an example value, or another Zap’s webhook secret.
Each active Zap creates one Efimis webhook subscription. A tenant can have at most 5 webhook subscriptions, so disable unused Zaps before creating replacements.
Efimis delivers webhooks at least once. The integration verifies the HMAC-SHA256 signature, timestamp, tenant alias, and request ID, then derives a stable event ID from the event payload so Zapier can deduplicate retries. Do not use the delivery request ID as an idempotency key because it changes on each delivery attempt.
The trigger exposes the complete event body as raw_payload. It can contain sensitive client, matter, invoice, or work-item data. Map it only to steps authorised to receive that information, and make sure access to Zapier task history and its retention follow your firm’s data-handling policy.
Test the deployment
Section titled “Test the deployment”After configuring the version:
- Connect an Efimis sandbox account in Zapier.
- Test authentication, searches, actions, and dynamic dropdowns in the Zap editor.
- Turn on a test Zap and confirm that Efimis creates its webhook subscription.
- Trigger a sandbox event and confirm that the Zap receives it.
- Turn off the Zap and confirm that its webhook subscription is removed.
Keep the deployed version private. Zapier promotion is required only when a maintainer intentionally wants to pursue an official App Directory listing.