{"id":557734,"date":"2026-09-16T11:46:29","date_gmt":"2026-09-16T11:46:29","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=557734"},"modified":"2026-09-16T11:46:38","modified_gmt":"2026-09-16T11:46:38","slug":"user-guide-for-krayin-crm-multidb-sass","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/","title":{"rendered":"User Guide For Krayin CRM MultiDb SASS"},"content":{"rendered":"\n<p><strong>Krayin CRM Multi-DB SaaS<\/strong> gives every business on your SaaS platform its own complete CRM, in its own separate database.<\/p>\n\n\n\n<p>Each tenant works at its own address with its own leads, contacts, quotes and users. Meanwhile the super admin still sees the whole platform in one place.<\/p>\n\n\n\n<p>The <a href=\"https:\/\/krayincrm.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">CRM system<\/a> facilitates the management of customer interaction across various sources and channels throughout the customer life cycle, involving both the customer and the sales department.<\/p>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h2 class=\"wp-block-heading index-title\">Features<\/h2>\n<\/div><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Database per tenant:<\/strong> every tenant runs a complete Krayin CRM in a database of its own, so no tenant can ever see another tenant\u2019s data.<\/li>\n\n\n\n<li><strong>Automatic setup:<\/strong> creating a tenant builds its database, installs the CRM and makes the owner its first administrator.<\/li>\n\n\n\n<li><strong>Setup progress page:<\/strong> the tenant\u2019s address shows <strong>Almost there\u2026<\/strong> and refreshes itself until the CRM is ready.<\/li>\n\n\n\n<li><strong>Verified sign-up:<\/strong> a 6-digit email code proves the address before any database is created.<\/li>\n\n\n\n<li><strong>Owner email confirmation:<\/strong> owners of tenants created by the super admin confirm their address through a signed link.<\/li>\n\n\n\n<li><strong>Credential sync:<\/strong> name, email and password changed by the super admin reach the tenant\u2019s own database.<\/li>\n\n\n\n<li><strong>Locked usernames:<\/strong> the username that names a tenant\u2019s address and database cannot be changed by mistake.<\/li>\n\n\n\n<li><strong>Clean deletion:<\/strong> deleting a tenant also deletes its database.<\/li>\n\n\n\n<li><strong>Cross-tenant reports:<\/strong> the super admin Dashboard, Leads and Quotes read every tenant database.<\/li>\n\n\n\n<li><strong>Tenant SMTP:<\/strong> each tenant can send CRM email through their own mail server, with a test email.<\/li>\n\n\n\n<li><strong>Safe mail hosts:<\/strong> private network addresses and non-mail ports are refused.<\/li>\n\n\n\n<li><strong>Ten locales:<\/strong> ar, en, es, fa, ja, ko, pt_BR, tr, vi and zh_CN, including right-to-left layouts.<\/li>\n<\/ul>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h2 class=\"wp-block-heading index-title\">Requirements<\/h2>\n<\/div><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Krayin<\/strong>: v2.2.6<\/li>\n\n\n\n<li><strong>Krayin SaaS<\/strong> extension installed<\/li>\n\n\n\n<li><strong>PHP<\/strong>: 8.3 or higher<\/li>\n\n\n\n<li><strong>Laravel<\/strong>: 12.x<\/li>\n\n\n\n<li>A <strong>MySQL or MariaDB<\/strong> user allowed to create and drop databases<\/li>\n\n\n\n<li><strong>Wildcard DNS<\/strong> such as <code>*.your-platform.com<\/code> pointing at the server<\/li>\n\n\n\n<li>A running <strong>queue worker<\/strong> and a working outgoing mail server<\/li>\n<\/ul>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Krayin \u2013 Laravel CRM<\/h3>\n<\/div><\/div>\n\n\n\n<p>Krayin is built on the most popular PHP framework available in the market today, named Laravel. Since Krayin inherits features of Laravel, it makes Krayin a super flexible and scalable CRM software.<\/p>\n\n\n\n<p>With the code-driven approach and also <strong>the fully customizable structure<\/strong>, you can easily add\/change anything and can even deploy your code in the Krayin CRM.<\/p>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Installation<\/h3>\n<\/div><\/div>\n\n\n\n<p>Unzip the respective extension zip and then merge the &#8220;packages&#8221; folder into the project root directory.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add this in <code>bootstrap\/providers.php<\/code> under the <strong>providers<\/strong> array:<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\">Webkul\\SaasTenancy\\Providers\\SaasTenancyServiceProvider::class,<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add to <code>composer.json<\/code> under &#8216;psr-4&#8217;:<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\">&quot;Webkul\\\\SaasTenancy\\\\&quot;: &quot;packages\/Webkul\/SaasTenancy\/src&quot;<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add this in <code>config\/concord.php<\/code> under the <strong>modules<\/strong> array:<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\">Webkul\\SaasTenancy\\Providers\\ModuleServiceProvider::class,<\/pre>\n\n\n\n<p>Run these commands below to complete the setup<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">composer require stancl\/tenancy:^3.10<\/pre>\n<br>\n\n<pre class=\"EnlighterJSRAW\">composer dump-autoload<\/pre>\n<br>\n\n<pre class=\"EnlighterJSRAW\">php artisan migrate<\/pre>\n<br>\n\n<pre class=\"EnlighterJSRAW\">php artisan vendor:publish --\nprovider=&quot;Webkul\\SaasTenancy\\Providers\\SaasTenancyServiceProvider&quot; --tag=config<\/pre>\n<br>\n\n<pre class=\"EnlighterJSRAW\">php artisan optimize:clear<\/pre>\n\n\n\n<p>Finally, keep a queue worker running, because tenant databases are built in the background.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">php artisan queue:work<\/pre>\n\n\n\n<p><strong>No other file needs to change.<\/strong> The module attaches its middleware, routes, menu entry and permission by itself.<\/p>\n\n\n\n<p>It also overrides the Krayin SaaS pages it changes from its own package. As a result the SaaS extension stays untouched and survives upgrades.<\/p>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Module Configuration<\/h3>\n<\/div><\/div>\n\n\n\n<p>The module works with its defaults. To change a behaviour, add the matching setting to your <code>.env<\/code> file.<\/p>\n\n\n\n<p><strong>SAAS_TENANT_DB_PREFIX:<\/strong> the start of every tenant database name, for example <code>saas_acme<\/code>. Default <code>saas_<\/code>.<\/p>\n\n\n\n<p><strong>SAAS_REGISTRATION_OTP:<\/strong> asks for an email code during Merchant Registration. Default <code>true<\/code>.<\/p>\n\n\n\n<p><strong>SAAS_REGISTRATION_OTP_TTL:<\/strong> seconds a sign-up code stays valid. Default <code>600<\/code>.<\/p>\n\n\n\n<p><strong>SAAS_REGISTRATION_OTP_ATTEMPTS:<\/strong> wrong codes allowed before a new one is needed. Default <code>5<\/code>.<\/p>\n\n\n\n<p><strong>SAAS_REGISTRATION_OTP_COOLDOWN:<\/strong> seconds to wait before another code can be sent. Default <code>60<\/code>.<\/p>\n\n\n\n<p><strong>SAAS_OWNER_EMAIL_VERIFICATION:<\/strong> asks owners of super-admin-created tenants to confirm their email. Default <code>true<\/code>.<\/p>\n\n\n\n<p><strong>SAAS_OWNER_EMAIL_VERIFICATION_TTL:<\/strong> minutes a confirmation link stays valid. Default <code>1440<\/code>.<\/p>\n\n\n\n<p><strong>SAAS_TENANT_MAIL:<\/strong> lets tenants use their own SMTP server. Default <code>true<\/code>.<\/p>\n\n\n\n<p><strong>SAAS_TENANT_MAIL_FALLBACK:<\/strong> sends through the platform\u2019s mail server when a tenant\u2019s server refuses a message. Default <code>true<\/code>.<\/p>\n\n\n\n<p><strong>SAAS_TENANT_MAIL_PORTS:<\/strong> ports tenants may choose. Default <code>25,465,587,2525<\/code>.<\/p>\n\n\n\n<p><strong>SAAS_DROP_TENANT_DATABASE:<\/strong> deletes a tenant\u2019s database when the tenant is deleted. Default <code>true<\/code>.<\/p>\n\n\n\n<p><strong>SAAS_TENANT_PROVISIONING_REFRESH:<\/strong> seconds between refreshes of the Almost there page. Default <code>5<\/code>.<\/p>\n\n\n\n<p><strong>SAAS_PASSWORD_MIN:<\/strong> minimum password length. A number and a special character are also required. Default <code>6<\/code>.<\/p>\n\n\n\n<p>Notably, every setting has a safe default. Consequently a fresh installation needs none of them.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step-by-Step: Changing a setting<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open the <code>.env<\/code> file in the Krayin root folder.<\/li>\n\n\n\n<li>Add the setting, for example <code>SAAS_REGISTRATION_OTP_TTL=900<\/code>.<\/li>\n\n\n\n<li>Save the file.<\/li>\n\n\n\n<li>Run <code>php artisan optimize:clear<\/code> so the new value is used.<\/li>\n<\/ol>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Permissions<\/h3>\n<\/div><\/div>\n\n\n\n<p>The module registers one permission in every tenant\u2019s CRM: <strong>Mail<\/strong>, under <strong>Settings \u2192 Other Settings<\/strong>. Grant it per role in <strong>Settings \u2192 Roles<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-1\"><img decoding=\"async\" width=\"1200\" height=\"825\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/permissions-1-1200x825.webp\" alt=\"\" class=\"wp-image-557840\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/permissions-1-1200x825.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/permissions-1-300x206.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/permissions-1-250x172.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/permissions-1-768x528.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/permissions-1-1536x1056.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/permissions-1.webp 1600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p><strong>Mail:<\/strong> allows a role to open, save and test the tenant\u2019s outgoing mail settings.<\/p>\n\n\n\n<p>Users whose role lacks it do not see the <strong>Mail<\/strong> tile at all. Therefore only trusted administrators can change where the CRM\u2019s email is sent.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step-by-Step: Granting mail settings access<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the tenant\u2019s CRM, open <strong>Settings \u2192 Roles<\/strong> and edit a role.<\/li>\n\n\n\n<li>Set <strong>Permission Type<\/strong> to <strong>Custom<\/strong>.<\/li>\n\n\n\n<li>Expand <strong>Settings \u2192 Other Settings<\/strong> in the permission tree.<\/li>\n\n\n\n<li>Tick <strong>Mail<\/strong>.<\/li>\n\n\n\n<li>Click <strong>Save Role<\/strong>.<\/li>\n<\/ol>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Creating a Tenant<\/h3>\n<\/div><\/div>\n\n\n\n<p>The super admin creates a tenant from <strong>Tenants \u2192 Create Tenant<\/strong>. Saving the form does more than add a row, however.<\/p>\n\n\n\n<p>The module creates a new database for the tenant, installs a complete Krayin CRM in it, and makes the email and password you enter its first administrator.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-2\"><img decoding=\"async\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/1-sign-up-1200x825.webp\" alt=\"\" class=\"wp-image-557809\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p><strong>Email:<\/strong> the address the tenant\u2019s owner signs in with.<\/p>\n\n\n\n<p><strong>Password:<\/strong> the owner\u2019s first password, with at least 6 characters, one number and one special character.<\/p>\n\n\n\n<p><strong>User Name:<\/strong> names both the address and the database. For example <strong>acme<\/strong> becomes <code>acme.your-platform.com<\/code>. Consequently it cannot be changed later.<\/p>\n\n\n\n<p><strong>CName:<\/strong> an optional custom domain such as <code>crm.acme.com<\/code>. It cannot be the platform\u2019s own domain or one of its subdomains.<\/p>\n\n\n\n<p><strong>Name:<\/strong> the business name, shown on the tenant list and in the emails the owner receives.<\/p>\n\n\n\n<p><strong>Status:<\/strong> off by default. Switch it on, otherwise the tenant is saved blocked.<\/p>\n\n\n\n<p>The tenant appears in the list straight away. Additionally the module adds an <strong>Outgoing mail<\/strong> column, which reads <strong>Platform<\/strong> until the tenant connects their own mail server.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step-by-Step: Creating a tenant<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Sign in to the super admin panel at <code>\/super\/login<\/code>.<\/li>\n\n\n\n<li>Open <strong>Tenants<\/strong> and click <strong>Create Tenant<\/strong>.<\/li>\n\n\n\n<li>Fill in <strong>Email<\/strong>, <strong>Password<\/strong>, <strong>User Name<\/strong> and <strong>Name<\/strong>.<\/li>\n\n\n\n<li>Switch <strong>Status<\/strong> on.<\/li>\n\n\n\n<li>Click <strong>Save as Tenant<\/strong>.<\/li>\n<\/ol>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Building the Tenant Database<\/h3>\n<\/div><\/div>\n\n\n\n<p>A tenant\u2019s database is built in the background, and it usually takes less than a minute.<\/p>\n\n\n\n<p>Anyone who opens the tenant\u2019s address meanwhile sees <strong>Almost there\u2026<\/strong>. The page refreshes itself and opens the sign-in page once the CRM is ready.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-3\"><img decoding=\"async\" width=\"1200\" height=\"825\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/building-the-tenant-database-1-1200x825.webp\" alt=\"\" class=\"wp-image-557846\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/building-the-tenant-database-1-1200x825.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/building-the-tenant-database-1-300x206.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/building-the-tenant-database-1-250x172.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/building-the-tenant-database-1-768x528.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/building-the-tenant-database-1-1536x1056.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/building-the-tenant-database-1.webp 1600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p><strong>Note:<\/strong> the page only moves on while a queue worker runs. If it changes to <strong>Setup failed<\/strong>, rebuild the tenant with <code>php artisan saas:tenant:provision &lt;username&gt; --fresh --sync<\/code>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step-by-Step: Opening a new tenant<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open the tenant\u2019s address, for example <code>acme.your-platform.com\/admin\/login<\/code>.<\/li>\n\n\n\n<li>Wait while <strong>Almost there\u2026<\/strong> is shown; there is nothing to click.<\/li>\n\n\n\n<li>Sign in with the owner\u2019s email and password once the sign-in page appears.<\/li>\n<\/ol>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Merchant Registration<\/h3>\n<\/div><\/div>\n\n\n\n<p>Businesses can also create their own CRM from <strong>Merchant Registration<\/strong>, reached through <strong>Register Now<\/strong> on the platform\u2019s home page.<\/p>\n\n\n\n<p>The module adds a <strong>Verify email<\/strong> step to that form. Therefore no database is created until a one-time code proves the address belongs to the person signing up.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-4\"><img decoding=\"async\" width=\"1200\" height=\"825\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-2-1200x825.webp\" alt=\"\" class=\"wp-image-557833\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-2-1200x825.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-2-300x206.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-2-250x172.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-2-768x528.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-2-1536x1056.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-2.webp 1600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p><strong>Account:<\/strong> enter an email, a password and a user name. The user name becomes the CRM\u2019s address.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-5\"><img decoding=\"async\" width=\"1200\" height=\"825\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-3-1200x825.webp\" alt=\"\" class=\"wp-image-557847\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-3-1200x825.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-3-300x206.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-3-250x172.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-3-768x528.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-3-1536x1056.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-3.webp 1600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p><strong>Verify email:<\/strong> a 6-digit code arrives by email and stays valid for 10 minutes. A new one can be requested after a short countdown.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-6\"><img decoding=\"async\" width=\"1200\" height=\"825\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-2-1200x825.webp\" alt=\"\" class=\"wp-image-557848\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-2-1200x825.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-2-300x206.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-2-250x172.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-2-768x528.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-2-1536x1056.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-2.webp 1600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>After five wrong attempts the code stops working. In that case the visitor simply sends themselves a new one.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-7\"><img decoding=\"async\" width=\"1200\" height=\"825\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-4-1200x825.webp\" alt=\"\" class=\"wp-image-557844\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-4-1200x825.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-4-300x206.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-4-250x172.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-4-768x528.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-4-1536x1056.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/merchant-registration-4.webp 1600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p><strong>Profile (optional):<\/strong> a name, a phone number in digits only, and a description. Submitting it starts building the tenant\u2019s database straight away.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step-by-Step: Registering a new CRM<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open the platform\u2019s home page and click <strong>Register Now<\/strong>.<\/li>\n\n\n\n<li>Fill in <strong>Email<\/strong>, <strong>Password<\/strong> and <strong>User Name<\/strong>, then click <strong>Continue<\/strong>.<\/li>\n\n\n\n<li>Enter the emailed code in <strong>Verification code<\/strong> and click <strong>Continue<\/strong>.<\/li>\n\n\n\n<li>Click <strong>Register<\/strong>, or <strong>Skip &amp; Register<\/strong> to leave the profile for later.<\/li>\n\n\n\n<li>Wait for <strong>Almost there\u2026<\/strong> to finish, then sign in; no further confirmation is needed.<\/li>\n<\/ol>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Confirming the Owner\u2019s Email<\/h3>\n<\/div><\/div>\n\n\n\n<p>A tenant created by the super admin has an owner whose address nobody has proven yet.<\/p>\n\n\n\n<p>The module therefore emails that owner a confirmation link as soon as the database is ready. Until it is used, the owner stays on a <strong>One more step<\/strong> page.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-8\"><img decoding=\"async\" width=\"1200\" height=\"825\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-1-1200x825.webp\" alt=\"\" class=\"wp-image-557835\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-1-1200x825.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-1-300x206.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-1-250x172.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-1-768x528.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-1-1536x1056.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-1.webp 1600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p><strong>Send the link again<\/strong> sends a fresh email, while <strong>Sign out<\/strong> leaves the page.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-9\"><img decoding=\"async\" width=\"1200\" height=\"825\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-2-1200x825.webp\" alt=\"\" class=\"wp-image-557848\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-2-1200x825.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-2-300x206.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-2-250x172.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-2-768x528.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-2-1536x1056.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-2.webp 1600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>The link expires after 24 hours. Additionally it works only for the address it was sent to.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-10\"><img decoding=\"async\" width=\"1200\" height=\"825\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-3-1200x825.webp\" alt=\"\" class=\"wp-image-557845\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-3-1200x825.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-3-300x206.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-3-250x172.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-3-768x528.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-3-1536x1056.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/confirming-the-owners-email-3.webp 1600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>Only the owner is ever asked. Colleagues the owner adds later sign in straight away, and tenants that registered with a code skip this step.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step-by-Step: Confirming the owner\u2019s email<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Sign in at the tenant\u2019s address with the details from the super admin.<\/li>\n\n\n\n<li>Check the address shown on <strong>One more step<\/strong>, and click <strong>Send the link again<\/strong> if no email arrived.<\/li>\n\n\n\n<li>Open the email and click <strong>Confirm my email address<\/strong>.<\/li>\n\n\n\n<li>The CRM opens with <strong>Thank you \u2014 your email address is verified.<\/strong><\/li>\n<\/ol>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Managing Tenants<\/h3>\n<\/div><\/div>\n\n\n\n<p>The owner\u2019s account lives in the tenant\u2019s own database, not in the platform\u2019s.<\/p>\n\n\n\n<p>Consequently the module copies changes to <strong>Name<\/strong>, <strong>Email<\/strong> and <strong>Password<\/strong> into that database, and the owner signs in with the new details straight away.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-11\"><img decoding=\"async\" width=\"1200\" height=\"825\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/managing-tenants-1-1200x825.webp\" alt=\"\" class=\"wp-image-557837\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/managing-tenants-1-1200x825.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/managing-tenants-1-300x206.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/managing-tenants-1-250x172.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/managing-tenants-1-768x528.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/managing-tenants-1-1536x1056.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/managing-tenants-1.webp 1600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>Leave <strong>Password<\/strong> blank to keep the current one. The <strong>User Name<\/strong>, however, is refused if changed, because the address and database are named after it.<\/p>\n\n\n\n<p><strong>Block:<\/strong> switch <strong>Status<\/strong> off. The tenant\u2019s address then shows <em>Company blocked by administrator<\/em>, and every record is kept.<\/p>\n\n\n\n<p><strong>Delete:<\/strong> removes the tenant and deletes its database with it. Notably this cannot be undone.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step-by-Step: Updating a tenant<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open <strong>Tenants<\/strong> and find the tenant with <strong>Search<\/strong>.<\/li>\n\n\n\n<li>Click the edit icon on its row.<\/li>\n\n\n\n<li>Change <strong>Name<\/strong>, <strong>Email<\/strong>, <strong>Password<\/strong> or <strong>Status<\/strong>.<\/li>\n\n\n\n<li>Click <strong>Update as Tenant<\/strong>, then tell the owner if their sign-in details changed.<\/li>\n<\/ol>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Reports Across All Tenants<\/h3>\n<\/div><\/div>\n\n\n\n<p>The platform\u2019s own database holds no CRM data. The module therefore reads every tenant database to fill the super admin dashboard, leads and quotes.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-12\"><img decoding=\"async\" width=\"1200\" height=\"825\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/creating-a-tenant-2-1200x825.webp\" alt=\"\" class=\"wp-image-557834\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/creating-a-tenant-2-1200x825.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/creating-a-tenant-2-300x206.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/creating-a-tenant-2-250x172.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/creating-a-tenant-2-768x528.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/creating-a-tenant-2-1536x1056.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/creating-a-tenant-2.webp 1600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Total Tenants<\/strong>, <strong>Active Tenants<\/strong> and <strong>Blocked Tenants<\/strong> count tenants by status.<\/li>\n\n\n\n<li><strong>New Tenants<\/strong> counts tenants created in the last 30 days.<\/li>\n\n\n\n<li><strong>Total Leads<\/strong> and <strong>Total Quotes<\/strong> add up every tenant database.<\/li>\n\n\n\n<li><strong>Converted Leads<\/strong> counts leads in the <strong>Won<\/strong> stage, and <strong>Conversion Rate<\/strong> is their share of all leads.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-13\"><img decoding=\"async\" width=\"1200\" height=\"825\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/reports-across-all-tenants-2-1200x825.webp\" alt=\"\" class=\"wp-image-557842\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/reports-across-all-tenants-2-1200x825.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/reports-across-all-tenants-2-300x206.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/reports-across-all-tenants-2-250x172.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/reports-across-all-tenants-2-768x528.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/reports-across-all-tenants-2-1536x1056.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/reports-across-all-tenants-2.webp 1600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p><strong>Leads<\/strong> lists every tenant\u2019s leads with the <strong>Tenant<\/strong> each belongs to, its stage, value and date.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-14\"><img decoding=\"async\" width=\"1200\" height=\"825\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/reports-across-all-tenants-3-1200x825.webp\" alt=\"\" class=\"wp-image-557841\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/reports-across-all-tenants-3-1200x825.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/reports-across-all-tenants-3-300x206.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/reports-across-all-tenants-3-250x172.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/reports-across-all-tenants-3-768x528.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/reports-across-all-tenants-3-1536x1056.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/reports-across-all-tenants-3.webp 1600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p><strong>Quotes<\/strong> does the same for quotes, with each grand total.<\/p>\n\n\n\n<p>Each tenant numbers its own records from 1. As a result the same ID can appear twice, so read the <strong>Tenant<\/strong> column to tell rows apart.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step-by-Step: Reviewing the whole platform<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Sign in to the super admin panel.<\/li>\n\n\n\n<li>Open <strong>Dashboard<\/strong> for the platform totals.<\/li>\n\n\n\n<li>Open <strong>Leads<\/strong> or <strong>Quotes<\/strong> for the full lists.<\/li>\n\n\n\n<li>Use <strong>Search<\/strong> and <strong>Filter<\/strong> to narrow them across every tenant.<\/li>\n<\/ol>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Tenant Outgoing Mail (SMTP)<\/h3>\n<\/div><\/div>\n\n\n\n<p>By default a tenant\u2019s CRM email goes out through the platform\u2019s mail server. The module lets each tenant connect their own server under <strong>Settings \u2192 Other Settings \u2192 Mail<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-15\"><img decoding=\"async\" width=\"1200\" height=\"825\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-1-1200x825.webp\" alt=\"\" class=\"wp-image-557839\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-1-1200x825.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-1-300x206.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-1-250x172.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-1-768x528.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-1-1536x1056.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-1.webp 1600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>The settings live in the tenant\u2019s own database. Additionally the password is stored encrypted and never shown again.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Server details<\/h4>\n\n\n\n<p><strong>SMTP host:<\/strong> the provider\u2019s outgoing server, for example <code>smtp.gmail.com<\/code>.<\/p>\n\n\n\n<p><strong>Port:<\/strong> one of the ports the platform allows, usually <strong>587<\/strong> with TLS or <strong>465<\/strong> with SSL.<\/p>\n\n\n\n<p><strong>Encryption:<\/strong> <strong>None<\/strong>, <strong>TLS<\/strong> or <strong>SSL<\/strong>, as the provider specifies.<\/p>\n\n\n\n<p><strong>Username<\/strong> and <strong>Password:<\/strong> the mail server login. Leave the password blank to keep it, or tick <strong>Remove the saved password<\/strong>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Sender identity<\/h4>\n\n\n\n<p><strong>From address<\/strong> and <strong>From name<\/strong> are what recipients see. Left blank, they follow the tenant account\u2019s own email and name.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-16\"><img decoding=\"async\" width=\"1200\" height=\"825\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-3-1200x825.webp\" alt=\"\" class=\"wp-image-557832\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-3-1200x825.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-3-300x206.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-3-250x172.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-3-768x528.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-3-1536x1056.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-3.webp 1600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Send a test email<\/h4>\n\n\n\n<p>One message goes out through the saved settings. Consequently the page reports exactly what the mail server answered.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-17\"><img decoding=\"async\" width=\"1200\" height=\"825\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-4-1200x825.webp\" alt=\"\" class=\"wp-image-557831\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-4-1200x825.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-4-300x206.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-4-250x172.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-4-768x528.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-4-1536x1056.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-4.webp 1600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Private addresses are refused<\/h4>\n\n\n\n<p>The host must be a public mail server. A host pointing at a private address, such as <code>192.168.1.20<\/code>, is refused on save.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large wp-duotone-unset-18\"><img decoding=\"async\" width=\"1200\" height=\"825\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-5-1200x825.webp\" alt=\"\" class=\"wp-image-557838\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-5-1200x825.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-5-300x206.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-5-250x172.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-5-768x528.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-5-1536x1056.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/tenant-outgoing-mail-smtp-5.webp 1600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">What happens after a failed send<\/h4>\n\n\n\n<p>When the tenant\u2019s server refuses a message, it goes out through the platform\u2019s mail server instead, and the failure is reported on this page.<\/p>\n\n\n\n<p>Meanwhile the super admin\u2019s tenant list shows <strong>SMTP failing<\/strong> for that tenant until the settings are fixed.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step-by-Step: Connecting your own mail server<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open <strong>Settings \u2192 Other Settings \u2192 Mail<\/strong> in the tenant\u2019s CRM.<\/li>\n\n\n\n<li>Switch on <strong>Use my own SMTP server<\/strong>.<\/li>\n\n\n\n<li>Fill in <strong>SMTP host<\/strong>, <strong>Port<\/strong>, <strong>Encryption<\/strong>, <strong>Username<\/strong> and <strong>Password<\/strong>.<\/li>\n\n\n\n<li>Click <strong>Save settings<\/strong>.<\/li>\n\n\n\n<li>Under <strong>Send a test email<\/strong>, enter an address you can open and click <strong>Send test email<\/strong>.<\/li>\n<\/ol>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Maintenance Commands<\/h3>\n<\/div><\/div>\n\n\n\n<p>Run these commands from the Krayin root folder whenever a tenant needs attention.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Rebuild or finish a tenant<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\">php artisan saas:tenant:provision acme --fresh --sync<\/pre>\n\n\n\n<p><code>--fresh<\/code> deletes and rebuilds the database, and <code>--sync<\/code> runs it now instead of on the queue. Additionally <code>--verified<\/code> treats the owner\u2019s email as confirmed.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Update every tenant database<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\">php artisan tenants:migrate<\/pre>\n\n\n\n<p>Run it after upgrading Krayin or this module, so every tenant database receives the new tables.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Find leftover databases<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\">php artisan saas:tenant:prune-databases\nphp artisan saas:tenant:prune-databases --drop --except=saas_keep_me<\/pre>\n\n\n\n<p>It lists databases whose tenant no longer exists, and <code>--drop<\/code> deletes them. Notably it matches by the <code>saas_<\/code> prefix, so exclude any database that is not a tenant.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Move uploaded files per tenant<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\">php artisan saas:tenant:migrate-files\nphp artisan saas:tenant:migrate-files --apply<\/pre>\n\n\n\n<p>The first run only reports. With <code>--apply<\/code> it copies files uploaded before the module was installed into each tenant\u2019s own storage.<\/p>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Support<\/h3>\n<\/div><\/div>\n\n\n\n<p>So, that is all about&nbsp;<strong>Krayin CRM Multi-DB SaaS<\/strong>. If you have any queries regarding the plugin, contact us at&nbsp;<a href=\"https:\/\/webkul.uvdesk.com\/en\/customer\/create-ticket\/\" target=\"_blank\" rel=\"noreferrer noopener\">Webkul Support System<\/a><strong>.<\/strong><\/p>\n\n\n\n<p>For developer documentation visit <a href=\"https:\/\/devdocs.krayincrm.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">devdocs.krayincrm.com<\/a>, and for user guides see <a href=\"https:\/\/docs.krayincrm.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">docs.krayincrm.com<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Krayin CRM Multi-DB SaaS gives every business on your SaaS platform its own complete CRM, in its own separate database. Each tenant works at its own address with its own leads, contacts, quotes and users. Meanwhile the super admin still sees the whole platform in one place. The CRM system facilitates the management of customer <a href=\"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":802,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-557734","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>User Guide For Krayin CRM MultiDb SASS - Webkul Blog<\/title>\n<meta name=\"description\" content=\"Krayin CRM Multi-DB SaaS gives every tenant its own CRM database. Learn to install it, create tenants, verify sign-ups and set up tenant SMTP.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"User Guide For Krayin CRM MultiDb SASS - Webkul Blog\" \/>\n<meta property=\"og:description\" content=\"Krayin CRM Multi-DB SaaS gives every tenant its own CRM database. Learn to install it, create tenants, verify sign-ups and set up tenant SMTP.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-16T11:46:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-16T11:46:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/09\/permissions-1-1200x825.webp\" \/>\n<meta name=\"author\" content=\"anurag.bagisto026\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"anurag.bagisto026\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/\"},\"author\":{\"name\":\"anurag.bagisto026\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/05a011ba0b9098ee3ad555a1bea93943\"},\"headline\":\"User Guide For Krayin CRM MultiDb SASS\",\"datePublished\":\"2026-09-16T11:46:29+00:00\",\"dateModified\":\"2026-09-16T11:46:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/\"},\"wordCount\":2218,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/09\/permissions-1-1200x825.webp\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/\",\"url\":\"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/\",\"name\":\"User Guide For Krayin CRM MultiDb SASS - Webkul Blog\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/09\/permissions-1-1200x825.webp\",\"datePublished\":\"2026-09-16T11:46:29+00:00\",\"dateModified\":\"2026-09-16T11:46:38+00:00\",\"description\":\"Krayin CRM Multi-DB SaaS gives every tenant its own CRM database. Learn to install it, create tenants, verify sign-ups and set up tenant SMTP.\",\"breadcrumb\":{\"@id\":\"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/#primaryimage\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/permissions-1.webp\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/permissions-1.webp\",\"width\":1600,\"height\":1100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webkul.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"User Guide For Krayin CRM MultiDb SASS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/webkul.com\/blog\/#website\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/webkul.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/webkul.com\/blog\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webkul\/\",\"https:\/\/x.com\/webkul\",\"https:\/\/www.instagram.com\/webkul\/\",\"https:\/\/www.linkedin.com\/company\/webkul\",\"https:\/\/www.youtube.com\/user\/webkul\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/05a011ba0b9098ee3ad555a1bea93943\",\"name\":\"anurag.bagisto026\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1205bc4ec0a32347f74c87611e8c9c475e49b0974d13b74be78a42254d4c43fa?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1205bc4ec0a32347f74c87611e8c9c475e49b0974d13b74be78a42254d4c43fa?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"caption\":\"anurag.bagisto026\"},\"url\":\"https:\/\/webkul.com\/blog\/author\/anurag-bagisto026\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"User Guide For Krayin CRM MultiDb SASS - Webkul Blog","description":"Krayin CRM Multi-DB SaaS gives every tenant its own CRM database. Learn to install it, create tenants, verify sign-ups and set up tenant SMTP.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/","og_locale":"en_US","og_type":"article","og_title":"User Guide For Krayin CRM MultiDb SASS - Webkul Blog","og_description":"Krayin CRM Multi-DB SaaS gives every tenant its own CRM database. Learn to install it, create tenants, verify sign-ups and set up tenant SMTP.","og_url":"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2026-09-16T11:46:29+00:00","article_modified_time":"2026-09-16T11:46:38+00:00","og_image":[{"url":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/09\/permissions-1-1200x825.webp","type":"","width":"","height":""}],"author":"anurag.bagisto026","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"anurag.bagisto026","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/"},"author":{"name":"anurag.bagisto026","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/05a011ba0b9098ee3ad555a1bea93943"},"headline":"User Guide For Krayin CRM MultiDb SASS","datePublished":"2026-09-16T11:46:29+00:00","dateModified":"2026-09-16T11:46:38+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/"},"wordCount":2218,"commentCount":0,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"image":{"@id":"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/09\/permissions-1-1200x825.webp","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/","url":"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/","name":"User Guide For Krayin CRM MultiDb SASS - Webkul Blog","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/#primaryimage"},"image":{"@id":"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/09\/permissions-1-1200x825.webp","datePublished":"2026-09-16T11:46:29+00:00","dateModified":"2026-09-16T11:46:38+00:00","description":"Krayin CRM Multi-DB SaaS gives every tenant its own CRM database. Learn to install it, create tenants, verify sign-ups and set up tenant SMTP.","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/#primaryimage","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/permissions-1.webp","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/09\/permissions-1.webp","width":1600,"height":1100},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/user-guide-for-krayin-crm-multidb-sass\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"User Guide For Krayin CRM MultiDb SASS"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/05a011ba0b9098ee3ad555a1bea93943","name":"anurag.bagisto026","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1205bc4ec0a32347f74c87611e8c9c475e49b0974d13b74be78a42254d4c43fa?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1205bc4ec0a32347f74c87611e8c9c475e49b0974d13b74be78a42254d4c43fa?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","caption":"anurag.bagisto026"},"url":"https:\/\/webkul.com\/blog\/author\/anurag-bagisto026\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/557734","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/802"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=557734"}],"version-history":[{"count":7,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/557734\/revisions"}],"predecessor-version":[{"id":557862,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/557734\/revisions\/557862"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=557734"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=557734"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=557734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}