DEV3 Technologies home

DEV3 Developer Forum

Which parts of DEV3 Deskly are simulated by default, and how do I switch them on?

Product questionsSolved0 views

1 reply

dev3 · Accepted answer

Payments

Payments are used for the customer portal's Priority support pack. The default gateway is Simulated: checkout shows Pay and Decline buttons and charges nothing. To take real payments, open Settings → Payments, choose Stripe, PayPal or Razorpay, set the currency and keys, and register the webhook https://your-domain/dev3/webhooks/payments/<gateway> in the gateway's dashboard. Test with sandbox keys first; the PayPal and Razorpay drivers have not been run against live accounts.

Two-factor authentication

Every account can add a second sign-in step from its profile (avatar menu → Profile): an authenticator app (scan the QR code, then save the 8 single-use recovery codes) or a 6-digit code by email, which needs working mail.

  • It is optional in the agent panel and the customer portal. To make it mandatory for staff, turn on System → Settings → Security → Require 2FA for staff.
  • A super admin can clear someone's 2FA with Reset 2FA on the agent or customer list. Locked out yourself? Run php artisan dev3:2fa-reset you@example.com on the server.
  • Secrets and recovery codes are encrypted with APP_KEY, so keep the same key when you move or update the app.
  • In demo mode the one-click logins never ask for a code.

Cron and queue

Add one cron entry that runs Laravel's scheduler every minute:

* * * * * cd /path/to/deskly && php artisan schedule:run >> /dev/null 2>&1

In cPanel choose Once per minute and use the full PHP path if needed. System → System health shows when the scheduler last ran. The scheduler runs:

  • deskly:sla-check every minute: SLA breaches, alerts and SLA-breached automations. Without cron, timers still show but breaches never fire.
  • deskly:fetch-mail every minute when the IMAP driver is on.
  • deskly:close-solved hourly: closes tickets that have been solved for 4 days.
  • queue:work --stop-when-empty every minute when QUEUE_CONNECTION=database.

The queue is sync by default (jobs run inside the request; nothing to set up). On a VPS, switch to database and run php artisan queue:work under Supervisor for a faster interface.

Mail

Until you set up mail, outgoing email is written to the log. Open System → Settings → Mail, choose SMTP and enter the host, port (587 for TLS or 465 for SSL), username, password and from address. Values saved in Settings override .env.

Email-to-ticket

Choose a driver in Settings → Channels → Email-to-ticket:

  • Inbound webhook (default): set a long random webhook secret, then have your mail service post incoming email to https://your-domain/inbound/email, with the secret in the X-Deskly-Secret header or as ?secret=. The Documentation has set-ups for Mailgun and Postmark.
  • IMAP mailbox: enter the host, port (993), encryption, username and password of a mailbox only Deskly reads. Test it with php artisan deskly:fetch-mail.
0

Your reply

Every post is reviewed by DEV3 before it appears. Usually reviewed within 24 hours.

Markdown supported. Use ``` for code blocks. Images are not allowed.