ShahiAssist

Getting Started & Installation Guide

Overview

ShahiAssist is a comprehensive WordPress plugin that combines a powerful support ticketing system with a self-service knowledge base. This guide will walk you through the complete installation, initial setup, and configuration process to get your support system up and running quickly.

System Requirements

Before installing ShahiAssist, ensure your environment meets these minimum requirements:

WordPress Environment

    1. WordPress Version: 6.0 or higher (tested up to 6.8)
    2. PHP Version: 8.0 or higher
    3. MySQL Version: 5.7 or higher
    4. PHP Extensions Required:
    5. json – For REST API and data handling
      mbstring – For multi-byte string operations
      mysqli or PDO – For database operations
      cURL – For webhook functionality

      Server Requirements

    6. Memory Limit: Minimum 128MB (256MB recommended)
    7. Max Execution Time: 30 seconds or higher
    8. File Upload Size: 10MB or higher (for ticket attachments)
    9. Permissions: Write access to wp-content/uploads directory
    10. Browser Compatibility

    11. Modern Browsers: Chrome 90+, Firefox 88+, Safari 14+, Edge 90+
    12. JavaScript: Must be enabled for AJAX features
    13. Cookies: Required for user sessions
    14. Installation Methods

      Method 1: WordPress Admin Upload (Recommended)

      This is the easiest method for most users:

    15. Download the Plugin
    16. – Obtain the shahiassist-v3.1.5.zip file from CodeCanyon or your download source
      – Do not extract the ZIP file

    17. Upload via WordPress Admin
    18. – Log in to your WordPress admin dashboard
      – Navigate to Plugins → Add New
      – Click the Upload Plugin button at the top
      – Click Choose File and select the shahiassist-v3.1.5.zip
      – Click Install Now

    19. Activate the Plugin
    20. – After installation completes, click Activate Plugin
      – You’ll see “ShahiAssist” appear in your admin menu

      Method 2: FTP/SFTP Upload

      For users who prefer or require FTP access:

    21. Extract the ZIP File
    22. – Unzip shahiassist-v3.1.5.zip on your local computer
      – You’ll see a ShahiAssist folder

    23. Upload via FTP
    24. – Connect to your server using an FTP client (FileZilla, Cyberduck, etc.)
      – Navigate to /wp-content/plugins/
      – Upload the entire ShahiAssist folder
      – Ensure all files and subfolders are transferred

    25. Set Permissions
    26. – Set folder permissions to 755
      – Set file permissions to 644
      – Ensure wp-content/uploads is writable

    27. Activate the Plugin
    28. – Go to WordPress admin → Plugins
      – Find “ShahiAssist” in the list
      – Click Activate

      Method 3: WP-CLI Installation

      For advanced users and developers:

      `bash

      Navigate to your WordPress installation

      cd /path/to/wordpress

      Upload the ZIP to your server first, then:

      wp plugin install /path/to/shahiassist-v3.1.5.zip –activate

      Or if already uploaded to plugins directory:

      wp plugin activate ShahiAssist

      Verify activation

      wp plugin list –status=active
      `

      Initial Configuration

      After activation, follow these steps to configure ShahiAssist:

      Step 1: Access Settings

    29. Look for ShahiAssist in your WordPress admin menu
    30. Click ShahiAssist → Settings
    31. You’ll see seven settings tabs:
    32. – General
      – Tickets
      – Knowledge Base
      – Emails
      – Roles
      – Integrations
      – Advanced

      Step 2: General Settings

      Configure your support brand identity:

      Company Information

    33. Company Name: Your organization name (appears in emails and frontend)
    34. – Example: “Acme Support Team”

    35. Support Email: Primary email for customer communication
    36. – Example: support@yourdomain.com
      – Used as “Reply-To” address in notifications

      Support Hours (Optional)

    37. Define your support availability
    38. Displays on ticket submission pages
    39. Example: “Monday-Friday, 9 AM – 5 PM EST”
    40. Contact Information

    41. Phone number (optional)
    42. Support URL (link to external help center)
    43. Social media links
    44. Step 3: Ticket Settings

      Configure how tickets are managed:

      Ticket ID Format

    45. Prefix: 2-4 character identifier for tickets
    46. – Default: SA (generates tickets like SA-ABC123)
      – Examples: TKT, SUP, HELP

    47. ID Length: Number of random characters after prefix (5-10)
    48. – Default: 8 characters
      – Example: SA-AB12CD34

      Default Values

    49. Default Status: Status for new tickets
    50. – Recommended: “Open”

    51. Auto-Assign: Automatically assign tickets to agents
    52. – Options: Round-robin, least busy, random, disabled

    53. Guest Submissions: Allow tickets from non-registered users
    54. – Enable for public-facing support
      – Disable for internal/customer-only systems

      Ticket Categories

    55. Navigate to Tickets → Categories
    56. Create categories like:
    57. – Technical Support
      – Billing Questions
      – Feature Requests
      – Bug Reports
      – General Inquiries

      Priority Levels

    58. Navigate to Tickets → Priorities
    59. Default priorities (customizable):
    60. – Low: Non-urgent requests
      – Medium: Standard support
      – High: Business-impacting issues
      – Urgent: System-down situations

      Step 4: Knowledge Base Settings

      Configure your self-service documentation:

      General KB Settings

    61. Articles Per Page: Number of articles in archive view (default: 10)
    62. Enable Ratings: Allow helpful/not helpful votes
    63. Show View Counts: Display article popularity
    64. Related Articles: Number to show (default: 3)
    65. Search Configuration

    66. Enable AJAX Search: Live search as users type
    67. Search Placeholder: Custom search box text
    68. – Default: “Search knowledge base…”

    69. Minimum Characters: Trigger search after X characters (default: 3)
    70. Article Settings

    71. Default Status: Published or Draft
    72. Allow Comments: Enable discussion on articles (usually disabled)
    73. Featured Articles: Highlight important docs on homepage
    74. KB Categories

    75. Navigate to KB Articles → Categories
    76. Create logical sections:
    77. – Getting Started
      – Features & How-To
      – Troubleshooting
      – Developer Resources
      – FAQs

      Step 5: Email Notifications

      Set up automated email communications:

      From Settings

    78. From Name: Sender name in emails
    79. – Example: “Acme Support”

    80. From Email: Sender email address
    81. – Example: noreply@yourdomain.com
      – Use a verified domain email to avoid spam filters

      Notification Events
      Enable/disable notifications for:

      Customer Notifications

    82. ✅ New ticket confirmation
    83. ✅ Status change alerts
    84. ✅ New reply from agent
    85. ✅ Ticket resolved notification
    86. ⬜ Ticket closed notification (optional)
    87. Admin/Agent Notifications

    88. ✅ New ticket submitted
    89. ✅ Ticket assigned to agent
    90. ✅ Customer reply received
    91. ⬜ Daily digest (summary of activity)
    92. Email Templates
      Customize email content using placeholders:

    93. {ticket_id} – Ticket number
    94. {customer_name} – Customer name
    95. {customer_email} – Customer email
    96. {ticket_subject} – Ticket subject
    97. {ticket_url} – Link to ticket
    98. {agent_name} – Assigned agent
    99. {company_name} – Your company name
    100. Example template:
      `
      Hello {customer_name},

      Your ticket {ticket_id} has been received.

      Subject: {ticket_subject}

      We’ll respond within 24 hours.

      View ticket: {ticket_url}

      Thank you,
      {company_name}
      `

      Step 6: Create Frontend Pages

      Create the following WordPress pages:

      Submit Ticket Page

    101. Go to Pages → Add New
    102. Title: “Submit Ticket” or “Contact Support”
    103. Add shortcode: [sasubmitticket]
    104. Publish the page
    105. Copy the page URL
    106. My Tickets Page

    107. Create new page
    108. Title: “My Tickets” or “Support Dashboard”
    109. Add shortcode: [samytickets]
    110. Set visibility: Private or Public (logged-in only)
    111. Publish and copy URL
    112. Knowledge Base Page

    113. Create new page
    114. Title: “Knowledge Base”, “Help Center”, or “Documentation”
    115. Add shortcode: [saknowledgebase]
    116. Publish and copy URL
    117. Assign Pages in Settings

    118. Return to ShahiAssist → Settings → Tickets
    119. Scroll to “Page Assignments”
    120. Select the pages you just created from dropdowns
    121. Click Save Settings
    122. Step 7: User Roles Setup

      Configure who can access support features:

      Default Roles
      ShahiAssist adds two custom roles:

      Support Agent

    123. Can view all tickets
    124. Can reply to tickets
    125. Can change ticket status
    126. Can create tickets on behalf of customers
    127. Cannot access settings or delete tickets
    128. Ideal for: Frontline support staff
    129. Support Manager

    130. All Agent capabilities, plus:
    131. Can assign tickets to agents
    132. Can delete tickets
    133. Can access statistics
    134. Can manage categories and priorities
    135. Cannot access plugin settings (admin only)
    136. Ideal for: Team leads and supervisors
    137. Assigning Roles

    138. Go to Users → All Users
    139. Click on a user
    140. Change Role dropdown to:
    141. – Support Agent
      – Support Manager

    142. Click Update User
    143. Permission Customization

    144. Navigate to ShahiAssist → Settings → Roles
    145. Check/uncheck capabilities per role
    146. Custom capabilities:
    147. read_tickets
      edit_tickets
      delete_tickets
      assign_tickets
      manageticketcategories
      view_statistics

      First-Time Setup Checklist

      Use this checklist to ensure complete configuration:

      Required Setup

    148. [ ] Plugin installed and activated
    149. [ ] Company name and support email configured
    150. [ ] Ticket prefix and ID format set
    151. [ ] At least 3 ticket categories created
    152. [ ] Submit Ticket page created with shortcode
    153. [ ] My Tickets page created with shortcode
    154. [ ] Knowledge Base page created with shortcode
    155. [ ] Pages assigned in Ticket Settings
    156. [ ] Email notifications enabled
    157. [ ] Email templates reviewed and customized
    158. Recommended Setup

    159. [ ] Support hours defined
    160. [ ] Priority levels reviewed
    161. [ ] Guest submissions enabled/disabled per needs
    162. [ ] Auto-assignment configured
    163. [ ] KB categories created
    164. [ ] At least one support agent user created
    165. [ ] Test ticket submitted
    166. [ ] Test email notifications received
    167. [ ] Knowledge base article published
    168. Advanced Setup (Optional)

    169. [ ] REST API endpoints tested
    170. [ ] Webhook URLs configured
    171. [ ] Custom fields added
    172. [ ] Email SMTP configured
    173. [ ] CSS customizations applied
    174. [ ] Translation files loaded
    175. Testing Your Installation

      After setup, perform these tests:

      Test 1: Submit a Ticket

    176. Visit your Submit Ticket page (not logged in)
    177. Fill out the form
    178. Submit and verify:
    179. – Ticket appears in admin (Tickets → All Tickets)
      – Ticket ID generated correctly
      – Email confirmation sent
      – Admin notification received

      Test 2: Agent Response

    180. Log in as admin or agent
    181. Open the test ticket
    182. Add a reply
    183. Verify:
    184. – Reply appears in ticket thread
      – Customer receives email notification
      – Timestamp displays correctly

      Test 3: Knowledge Base

    185. Visit KB page
    186. Verify layout loads correctly
    187. Test search functionality
    188. Click an article category
    189. View a single article
    190. Test rating buttons (helpful/not helpful)
    191. Test 4: Customer Dashboard

    192. Create a test user account
    193. Submit tickets as that user
    194. Log in as test user
    195. Visit My Tickets page
    196. Verify:
    197. – Only user’s tickets visible
      – Filter by status works
      – Ticket details load
      – Reply form functions

      Test 5: Email Notifications

    198. Check spam folders if emails missing
    199. Verify sender name and email
    200. Check placeholders replaced correctly
    201. Confirm links work
    202. Test on mobile email clients
    203. Post-Installation Optimization

      Performance Optimization

      Caching Considerations

    204. If using caching plugins (WP Rocket, W3 Total Cache):
    205. – Exclude AJAX endpoints from cache
      – Exclude pages: /wp-admin/admin-ajax.php
      – Clear cache after configuration changes

      Database Optimization

    206. ShahiAssist creates custom post types (tickets, articles)
    207. Regular database optimization recommended
    208. Use plugins like WP-Optimize for maintenance
    209. Image Optimization

    210. KB article images should be optimized
    211. Use WebP format when possible
    212. Recommended tools: ShortPixel, Imagify
    213. Security Hardening

      SSL/HTTPS

    214. Always use HTTPS for ticket submission
    215. Ensures data encryption in transit
    216. Enable SSL certificate on your server
    217. User Permissions

    218. Review and limit admin access
    219. Use strong passwords for agents
    220. Enable two-factor authentication (2FA plugins)
    221. Backup Strategy

    222. Regular WordPress backups (plugins: UpdraftPlus, BackWPup)
    223. Export tickets periodically (ShahiAssist → Export/Import)
    224. Store backups off-site
    225. File Upload Security

    226. Limit file types for attachments
    227. Scan uploads for malware
    228. Set maximum file size limits
    229. SEO Optimization

      Knowledge Base SEO

    230. Install Yoast SEO or Rank Math
    231. Optimize article titles and meta descriptions
    232. Use descriptive URLs (slugs)
    233. Add internal links between articles
    234. Create XML sitemap for KB articles
    235. Schema Markup

    236. ShahiAssist adds basic schema
    237. Consider additional structured data for rich snippets
    238. Troubleshooting Installation Issues

      Common Issues and Solutions

      Issue: Plugin Won’t Activate

    239. Cause: PHP version too old
    240. Solution: Upgrade to PHP 8.0 or higher
    241. Check: Contact hosting provider for PHP upgrade
    242. Issue: White Screen After Activation

    243. Cause: PHP memory limit exceeded
    244. Solution: Increase memory limit in wp-config.php:
    245. `php
      define(‘WPMEMORYLIMIT’, ‘256M’);
      `

      Issue: Missing Menu Item

    246. Cause: Insufficient user permissions
    247. Solution: Log in as Administrator
    248. Check: Go to Users → Your Profile and verify role
    249. Issue: Shortcodes Display as Text

    250. Cause: Page editor strips shortcodes
    251. Solution:
    252. – Switch page to “Code Editor” mode
      – Ensure shortcode on its own line
      – No quotes or extra characters

      Issue: Email Notifications Not Sending

    253. Cause: WordPress mail() function limitations
    254. Solution: Install WP Mail SMTP plugin
    255. Configure: Use SMTP service (SendGrid, Mailgun, etc.)
    256. Issue: 404 Error on KB Articles

    257. Cause: Permalink structure not flushed
    258. Solution:
    259. – Go to Settings → Permalinks
      – Click Save Changes (don’t change anything)
      – Retry KB URL

      Issue: Tickets Not Saving

    260. Cause: File permission problems
    261. Solution:
    262. – Check wp-content/uploads is writable (755)
      – Verify PHP user has write access

      Issue: JavaScript Errors in Console

    263. Cause: Theme or plugin conflict
    264. Solution:
    265. – Test with default theme (Twenty Twenty-Four)
      – Deactivate other plugins temporarily
      – Check browser console for specific errors

      Issue: REST API 401 Unauthorized

    266. Cause: Authentication failure
    267. Solution:
    268. – Use WordPress Application Passwords
      – Go to Users → Profile → Application Passwords
      – Generate new password for API access

      Getting Help

      Documentation Resources

    269. This Knowledge Base: Complete feature documentation
    270. README.md: Technical reference in plugin folder
    271. USER-GUIDE.md: Administrator guide
    272. API.md: REST API and webhook documentation
    273. Online Docs: http://shahisoft.store/shahiassist/docs
    274. Support Channels

      Official Support

    275. Email: shahiassist@gec5.com
    276. Response time: 24 business hours
    277. Include: WordPress version, PHP version, error messages
    278. Community Resources

    279. CodeCanyon item comments
    280. WordPress.org forums (if applicable)
    281. GitHub issues (for developers)
    282. What to Include in Support Requests

    283. WordPress version (Dashboard → Updates)
    284. PHP version (ShahiAssist → Settings → Advanced → System Info)
    285. Active theme and plugins
    286. Steps to reproduce issue
    287. Screenshots or error messages
    288. Browser and version (for frontend issues)
    289. Debug Mode

      Enable debug mode for troubleshooting:

    290. Edit wp-config.php
    291. Add these lines before “That’s all, stop editing!”:
    292. `php
      define(‘WP_DEBUG’, true);
      define(‘WPDEBUGLOG’, true);
      define(‘WPDEBUGDISPLAY’, false);
      `

    293. Reproduce the issue
    294. Check wp-content/debug.log for errors
    295. Disable debug mode after troubleshooting
    296. Next Steps

      Now that ShahiAssist is installed and configured:

    297. Read Feature Documentation: Explore the “Features & How-To” guide
    298. Create Test Tickets: Familiarize yourself with the workflow
    299. Write KB Articles: Build your knowledge base content
    300. Train Your Team: Share the User Guide with agents
    301. Customize Appearance: Match your brand with CSS
    302. Set Up Integrations: Configure REST API or webhooks if needed
    303. Welcome to ShahiAssist! You’re ready to provide world-class support to your customers.

      Quick Reference

      Important URLs (after setup)

    304. Admin Dashboard: /wp-admin/admin.php?page=shahi-assist
    305. All Tickets: /wp-admin/edit.php?posttype=saticket
    306. Settings: /wp-admin/admin.php?page=shahi-assist-settings
    307. KB Articles: /wp-admin/edit.php?posttype=sakb_article
    308. Default Credentials

    309. No default users created
    310. Use your WordPress admin account
    311. Create agent accounts via Users → Add New
    312. File Locations

    313. Plugin folder: /wp-content/plugins/ShahiAssist/
    314. Uploads: /wp-content/uploads/shahi-assist/
    315. Logs: /wp-content/debug.log (if enabled)
    316. Support

    317. Email: shahiassist@gec5.com
    318. Docs: http://shahisoft.store/shahiassist/docs
    319. Version: 3.1.5

Share this article

Was this article helpful?

Help us improve our documentation

Still need help?

Our support team is ready to assist you with personalized guidance for your workspace.

Submit a support ticket