Zapier for Krayin CRM connects your CRM to the thousands of apps Zapier supports. A new lead can therefore reach Slack, Gmail, Google Sheets or Mailchimp the moment it lands. Moreover, the Krayin Zapier integration runs both ways, so an outside app can create records inside Krayin without anyone retyping them.
This user guide covers the Krayin Zapier integration end to end. First you install the package and tune its settings. Next you generate an API key and build a working Zap. Finally you monitor every delivery from inside Krayin.
Note: Your Krayin installation must be reachable from the public internet. Zapier’s servers make every call directly, therefore a localhost address never works. During development, use a tunnel such as ngrok and point APP_URL at it.
Automate Krayin CRM Without Writing Code
Zapier watches for something happening in Krayin and then does something somewhere else. You build those rules yourself by picking from dropdown menus, so you never write a line of code. Zapier calls each rule a Zap, and every Zap follows the same shape: when this happens, do that.
For example, a new lead can post itself to your team’s Slack channel. Similarly, a lead that moves to “Won” can add a row to a reporting spreadsheet. A quote going out can notify finance, and a new contact can join your Mailchimp list automatically.
Because the integration also exposes write endpoints, the traffic flows the other way too. Consequently, a form on your website or a message in Slack can become a Krayin lead within seconds.
Key Benefits of the Krayin Zapier Integration
- Nine instant triggers: Leads, contacts and quotes each fire on created, updated and deleted. Krayin pushes the record the moment it changes.
- Four write-back actions: Create Lead, Update Lead, Create Person and Update Person let any Zap put data into Krayin.
- No polling delay: Every trigger is a REST Hook. Therefore nothing sits on a schedule waiting to check for changes.
- Custom fields included: Leads and contacts are EAV records, so your own custom attributes appear in the Zap editor automatically.
- Per-user API keys: A key authenticates as its owner and respects that user’s record visibility, which keeps permissions intact.
- Full delivery logging: Krayin records every attempt together with the payload it sent and the response it received.
- Built-in safety limits: Retries, timeouts, payload caps and an SSRF allowlist all ship with sensible defaults.
What Can Start a Zap
A Zap listens to a single event, so “a lead was created” and “a lead was updated” stay separate triggers. In total the Krayin Zapier integration ships nine of them. Every payload also carries an entity and an action field, so a Zap can tell records apart without inspecting them.
- Leads: New Lead, Updated Lead and Deleted Lead.
- Contacts: New Person, Updated Person and Deleted Person.
- Quotes: New Quote, Updated Quote and Deleted Quote.
Deletes deserve a special mention. Krayin dispatches only the record id once a delete has finished, therefore the package captures the full record beforehand and sends that instead. As a result, your Zap receives a complete record rather than a bare id.
What Zapier Can Change in Krayin
- Create Lead: Adds a lead and attaches it to the contact matching the email you supply. If nobody matches, Krayin creates that contact rather than duplicating one.
- Update Lead: Changes an existing lead. It touches only the fields you fill in and leaves the rest alone.
- Create Person: Adds a contact, or returns the existing contact when the email already exists.
- Update Person: Changes an existing contact in place.
Installation
Installing the Krayin Zapier integration takes a few minutes and happens once. You register two service providers in two different files, after which a single artisan command finishes the job.
Step 1: Register the Service Provider
Open bootstrap/providers.php and add the Zapier service provider to the array.
Webkul\Zapier\Providers\ZapierServiceProvider::class,
Step 2: Register the Module Service Provider
Next, open config/concord.php and add the module provider inside the modules array. This one belongs in Concord’s config, not in bootstrap/providers.php; putting it in the wrong file breaks the boot with a “Concord not instantiable” error.
Webkul\Zapier\Providers\ModuleServiceProvider::class,
Step 3: Rebuild the Autoloader
Composer needs to pick up the new namespace before anything else runs.
composer dump-autoload
Step 4: Run the Installer
One command does the rest. Specifically, it checks both providers, migrates the three tables, fills in the configuration values, publishes the assets and clears the caches.
php artisan zapier:install
The installer is safe to re-run, and it refuses to start when a provider is missing rather than failing later with an unrelated error. If you prefer to do it by hand, the four commands below achieve the same result.
php artisan migrate php artisan db:seed --class="Webkul\Zapier\Database\Seeders\ConfigurationSeeder" php artisan vendor:publish --tag=zapier-assets php artisan optimize:clear
Step 5: Start the Queue Worker
Deliveries run on Laravel’s queue, so a worker has to be running. Without one, Krayin never sends anything to Zapier and nothing warns you.
php artisan queue:work
An existing worker is enough, because the package uses the default queue. Whenever the queue connection is still set to sync, every Zapier page shows an orange banner explaining what to change.
For production environments, it is recommended to use Supervisor to keep the Laravel queue worker running continuously. Supervisor configuration files are typically stored in the /etc/supervisor/conf.d directory. Within this directory, you may create any number of configuration files that instruct Supervisor how your processes should be monitored.
For example, let’s create a laravel-worker.conf file that starts and monitors queue:work processes:
[program:laravel-worker] process_name=%(program_name)s_%(process_num)02d command=php /home/forge/app.com/artisan queue:work --sleep=3 --tries=3 --max-time=3600 autostart=true autorestart=true stopasgroup=true killasgroup=true user=forge numprocs=8 redirect_stderr=true stdout_logfile=/home/forge/app.com/worker.log stopwaitsecs=3600
In this example, the numprocs directive will instruct Supervisor to run eight queue:work processes and monitor all of them, automatically restarting them if they fail. You should change the command directive of the configuration to reflect your desired queue connection and worker options.
After creating the configuration file, reload Supervisor so that the changes take effect:
sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start laravel-worker:*
You can verify that the queue workers are running by using:
sudo supervisorctl status
The command and stdout_logfile paths should be changed to match your Krayin installation path and the user running your Laravel application.
Step 6: Grant the Zapier Permissions
Roles set to “all” permissions can use the Krayin Zapier integration straight away. For a custom role, however, open Settings → Roles, edit the role and tick the Zapier group. Underneath it you will find API Keys with Create and Delete, Connected Zaps with Disconnect, and Delivery Logs.
Step-by-Step: Krayin CRM Zapier Configuration
Every setting for the Krayin Zapier integration lives under Configuration → Zapier → Settings, grouped into Delivery, Payload and Delivery logging. The defaults suit most installations, so treat this section as a reference rather than a checklist.
Values resolve in a fixed order. First Krayin reads whatever you saved on this screen; otherwise it falls back to config/zapier.php, which in turn reads an environment variable. In short, your .env supplies the default and the admin screen overrides it.
Step 1: Review the Delivery Settings
Four fields control how each record travels to Zapier. Delivery timeout (seconds) decides how long Krayin waits before giving up, and it defaults to 15. Retry attempts sets how many times Krayin retries a failed send, defaulting to 3.
Failures before pausing a Zap defaults to 10. After that many consecutive failures, Krayin stops sending to that Zap until it reconnects. Finally, Maximum Zaps per API key caps how many subscriptions one key may hold, with 100 as the default.
Step-by-Step: Adjusting Delivery Settings
- Open Configuration from the left sidebar.
- Select Zapier, then choose Settings.
- Expand the Delivery group.
- Enter your values for Delivery timeout, Retry attempts, Failures before pausing a Zap and Maximum Zaps per API key.
- Click Save Configuration.
Step 2: Tune the Payload and Logging Settings
The Payload group holds two fields. Maximum fields per record caps a payload at 250 keys by default; past that point Krayin trims the record and flags it so a Zap can detect the truncation. Records shown in “Test trigger” controls how many samples Zapier offers while you build a Zap, and three is the default.
Three more fields sit under Delivery logging. Log every delivery switches recording on or off. Days to keep logs defaults to 30, where zero keeps rows forever. Lastly, Fields stored per log entry caps the stored copy of each payload at 60 keys.
Step-by-Step: Changing Payload and Logging Limits
- Stay on Configuration → Zapier → Settings and scroll to Payload.
- Set Maximum fields per record and Records shown in “Test trigger”.
- Scroll down to Delivery logging.
- Toggle Log every delivery, then set Days to keep logs and Fields stored per log entry.
- Click Save Configuration to apply everything at once.
Step 3: Generate an API Key
The Krayin Zapier integration authenticates with an API key rather than your login, and you create that key here. Open Zapier → API Keys from the sidebar. The grid lists every key you own alongside its creation date and the last time Zapier used it.
Click Generate and give the key a name you will recognise later, such as “Marketing Zaps”. Keys are deliberately per user, because a key authenticates as its owner and sees exactly what that user may see.
Krayin then shows the key once, in a green panel at the top of the screen. Copy it immediately. Krayin stores only a hash, therefore it can never show the plaintext again. Losing it costs nothing, though: revoke the key and generate another.
Step-by-Step: Generating an API Key
- Click Zapier in the left sidebar, then open API Keys.
- Press the Generate button at the top right.
- Type a recognisable Name for the key.
- Press Generate again to confirm.
- Copy the key from the green panel before you navigate away.
Step 4: Revoke a Key You No Longer Need
Revoking is immediate and final. Every Zap using that key stops receiving records straight away, and the subscriptions attached to it disappear with it. For that reason Krayin asks you to confirm first.
Step-by-Step: Revoking an API Key
- Open Zapier → API Keys.
- Find the key in the grid and click Revoke in its Actions column.
- Read the warning, which explains that every Zap using the key stops immediately.
- Confirm to finish, then generate a replacement key if you still need one.
Building Your First Zap With Krayin CRM
With a key in hand, the rest of the Krayin Zapier integration setup happens inside Zapier. The walkthrough below builds a real Zap: whenever somebody adds a contact in Krayin, Zapier creates a matching lead. Naturally, you can point the same steps at Slack, Gmail or any other app instead.
Step 5: Choose Krayin CRM as the Trigger App
Sign in to Zapier and click Create, then Zap. Click the trigger card and search for Krayin CRM, which is how the Krayin Zapier integration appears in the app directory.
Step 6: Pick the Trigger Event
Open the Trigger event dropdown. All nine Krayin events appear there, each marked Instant because Krayin pushes rather than Zapier polling. For this walkthrough, choose New Person.
Step 7: Connect Your Krayin Account
Click Select under Account, then choose Connect a new account. A small window opens asking for two things, since Krayin is self-hosted and every customer lives on a different domain.
Enter your Krayin URL — the domain only, since Zapier trims a trailing slash or a path such as /admin/dashboard for you. Paste the API Key underneath; Zapier masks it on entry and everywhere it appears afterwards. Then click Connect.
Zapier validates the address before it sends your key anywhere. Consequently, it refuses cleartext HTTP, an embedded credential, a loopback address or a private range on the spot, with a message naming the problem.
Step-by-Step: Connecting Krayin to Zapier
- In the Zap editor, click Select beside Account.
- Choose + Connect a new account at the bottom of the list.
- Paste your CRM domain into Krayin URL.
- Paste the key you copied into API Key.
- Click Connect and wait for the window to close by itself.
Step 8: Confirm the Connected Account
Back in the editor, the account now appears under Account, labelled with your admin name and your CRM name. That label exists so anyone running several Krayin instances can tell their connections apart. Click Continue to move on.
Step 9: Test the Trigger
Press Test trigger. The Krayin Zapier integration returns your most recent records — three by default, which is the Records shown in “Test trigger” setting you saw earlier. These are genuine records from your CRM, not invented samples.
Click any record to expand it and you will see every field your Zap can map. Alongside the obvious ones such as Name, Email and Phone, notice Entity, Action and Crm Url. That last field links straight back to the record inside Krayin, which is handy inside a Slack message.
Sample records and live deliveries run through the same transformer, so the fields you map now are exactly the fields that arrive later. Select a record and click Continue with selected record.
Step 10: Add the Action and Fill Its Fields
Click the action card, pick Krayin CRM again and choose Create Lead. The Configure tab then loads the full field list: Title, Description, Lead Value, Pipeline, Stage, Source, Type, Sales Owner, Expected Close Date and the four person fields.
Only Title is required. Filling Person Email is worth the extra second, though, because Krayin attaches the matching contact instead of creating a duplicate. Any custom lead attribute your installation defines appears in this list as well.
Step 11: Use the Live Dropdowns
Pipeline, Stage, Source, Type, Sales Owner and Organization are not free text. Instead, each one loads its options from your CRM the moment you open it, as the screenshot below shows.
Stage follows whichever pipeline you pick, so changing the pipeline reloads the stage list rather than offering stages from elsewhere. Leaving both empty is fine too: Krayin then uses the default pipeline and its first stage.
Step 12: Test the Action
Click Test step. Zapier sends the request for real, so a lead genuinely appears in Krayin, and the response comes back with the complete record. Among other things it includes the new lead id, the resolved pipeline and stage, the owner, and a direct link to the record.
Step 13: Publish the Zap
Click Publish, give the Zap a name, and confirm. At that moment Zapier registers a subscription through the Krayin Zapier integration, and from then on the Zap runs by itself.
Step-by-Step: Building and Publishing a Zap
- Click Create → Zap on the Zapier home screen.
- Select Krayin CRM as the trigger app and choose an event.
- Connect your account with the CRM URL and API key, then click Continue.
- Run Test trigger and pick one of the returned records.
- Add an action, map the fields you need, and run Test step.
- Click Publish, name the Zap, and confirm.
Watching the Krayin Zapier Integration Work
Testing the finished Krayin Zapier integration takes one record. Create a contact under Contacts → Persons and save it as you normally would.
Within a second or two the lead appears under Leads, created by the Zap rather than by a person. Saving that contact also fired a second trigger, because creating the lead is itself a lead-created event.
Connected Zaps
Zapier → Connected Zaps lists every Zap currently listening to your CRM. Each row shows the trigger, the key it connected through, its status and the date it connected. Zapier adds and removes these rows itself as you switch Zaps on and off, so the list stays accurate on its own.
A status of Active means the Krayin Zapier integration is delivering records normally. Paused appears once a Zap has failed too many times in a row, and the count comes from your Failures before pausing a Zap setting. Disconnect stops Krayin sending to that Zap while leaving the Zap switched on in Zapier.
Delivery Logs
Open Zapier → Delivery Logs for the complete history of the Krayin Zapier integration. Five summary cards sit at the top: Success Rate, Delivered, Failed, Zap Turned Off and Blocked. Underneath, a filterable grid records the time, trigger, record, status, HTTP code and duration of every attempt.
Each status means something specific. Delivered confirms that Zapier accepted the record. Failed means Krayin could not reach Zapier, or Zapier answered with an error; either way Krayin retries automatically. Zap Turned Off appears once somebody switches that Zap off in Zapier, while Blocked means the destination fell outside the approved Zapier addresses, so nothing left your server.
Reading a Delivery Log Entry
Click View on any row. The Krayin Zapier integration then repeats the summary and then shows the two things that actually matter: the exact JSON payload Krayin sent, and the response Zapier returned. From this side of the connection, nothing else can tell you what Zapier received.
Step-by-Step: Investigating a Delivery
- Open Zapier → Delivery Logs.
- Use the search box or Filter to narrow the grid by trigger or status.
- Click View on the row you want to inspect.
- Compare Payload Sent against what your Zap expected.
- Read Response Received to see how Zapier answered.
Checking Zap History in Zapier
The Krayin Zapier integration logs cover the outbound half of the journey. For the other half, open Zap history in Zapier, where every run shows the tasks it consumed and whether it succeeded. Reading both sides together usually explains any problem within a minute.
Troubleshooting the Krayin Zapier Integration
Nothing Is Delivered At All
Nine times out of ten the queue worker is the culprit. Deliveries run as queued jobs, therefore no worker means no traffic and no error message either. Ask whoever runs your server whether php artisan queue:work is running, and watch for the orange banner Krayin shows when the queue is still set to sync.
A Delivery Shows Failed
Krayin could not reach Zapier, or Zapier answered with an error. Krayin retries on its own, so a single failure rarely needs attention. When failures repeat, open the log detail and read the response; afterwards, check the same run in Zap history.
A Delivery Shows Blocked
Blocked means the target address fell outside the approved list, so Krayin sent nothing. This allowlist protects your network, and it deliberately lives in config/zapier.php rather than in the admin. Otherwise, any compromised admin session could turn your CRM into a proxy against your own infrastructure.
A Delivery Shows Zap Turned Off
Somebody switched that Zap off in Zapier. Krayin removes the subscription and stops sending, yet it keeps the log row on purpose, because that row is what explains a record which never arrived. Switching the Zap back on recreates the subscription automatically.
Watch Your Zapier Task Usage
Every record the Krayin Zapier integration sends costs one task on your Zapier plan, and Krayin’s bulk actions send one per record. Updating 500 leads at once therefore costs 500 tasks, while deleting 5,000 costs 5,000 — enough to exhaust most plans in a single click.
Use Zaps for the things that happen one at a time: a lead arriving, a deal being won, a quote going out. For moving data in bulk, Krayin’s own import and export tools remain the better choice.
Contact Us Section
Zapier for Krayin CRM turns a CRM that waits for people into one that talks to the rest of your stack. Furthermore, because every trigger is instant and every delivery is logged, you can automate confidently and still see exactly what happened.
For developer documentation covering routes, payloads and configuration keys, visit the Krayin developer documentation. You will also find related extensions in the Krayin CRM extension store.
Need help with installation or a custom workflow? Raise a ticket at Webkul Support or email us at support@webkul.com, and our team will get back to you.