SpentaCRM چیست؟
پروژه SpentaCRM بهصورت عمومی در GitHub منتشر شده است؛ یک پلتفرم CRM متنباز و ماژولار برای کسبوکارهای B2B که هدف آن ایجاد یک پایه قابلاستفاده مجدد برای ساخت CRMهای اختصاصی شرکتهای مختلف است.
ایده اصلی پروژه این است که برای هر سازمان نیازی به ساخت مجدد یک CRM از صفر نباشد. بخشهای عمومی مانند مدیریت شرکتها، مخاطبان، فرصتهای فروش، پروژهها، وظایف، فعالیتها، سطح دسترسی و داشبورد در هسته SpentaCRM قرار میگیرند و قابلیتهای مخصوص هر شرکت میتوانند از طریق تنظیمات، Integrationها و Moduleها به سیستم اضافه شوند.
یک CRM که قرار نیست برای همه شرکتها یکسان باشد
بسیاری از شرکتها به اجزای مشابهی مانند Companies، Contacts، Deals، Projects و Tasks نیاز دارند، اما Workflow، اصطلاحات، فرآیند فروش، ساختار سازمانی و Integrationهای آنها با یکدیگر متفاوت است.
SpentaCRM با همین دیدگاه طراحی شده است: هسته CRM ثابت و قابل نگهداری باقی بماند، اما هر سازمان بتواند محصول را مطابق فرآیندهای خودش توسعه دهد.
در نسخه فعلی، بخشهایی مانند مدیریت شرکتها و مخاطبان، Pipeline فروش، Dealها، پروژهها، Taskها، Activityها، داشبورد عملیاتی، RBAC، Audit Log و جستجوی سراسری در ساختار پروژه در نظر گرفته شدهاند.
سیستم ماژولار؛ قابلیت جدید SpentaCRM
یکی از مهمترین بخشهای اخیر پروژه، Module Runtime v3 است. در این معماری یک Module فقط یک فایل JSON نیست؛ بلکه میتواند یک پروژه کوچک باشد که همراه با فایل Manifest در قالب ZIP بستهبندی میشود.
برای مثال یک شرکت میتواند ماژولی برای Inventory، Accounting، Customer Success، Expense Tracking، Meeting Management یا یک ابزار اختصاصی داخلی ایجاد کند و آن را بدون تغییر مستقیم در هسته CRM نصب کند.
ساختار کلی یک ماژول میتواند به شکل زیر باشد:
inventory-module.zip
├── spenta-module.json
├── src/
├── dist/
│ ├── pages/
│ ├── widgets/
│ ├── tabs/
│ └── runtime.js
└── README.mdفایل spenta-module.json نقش شناسنامه ماژول را دارد و اطلاعاتی مانند نام، نسخه، Publisher، Permissionها و بخشهایی را که ماژول به CRM اضافه میکند مشخص میکند؛ در حالی که کد و رابط واقعی ماژول در فایلهای پروژه قرار میگیرند.
یک Module چه چیزهایی میتواند اضافه کند؟
Moduleهای قابلحمل SpentaCRM در نسخه فعلی میتوانند قابلیتهایی مانند موارد زیر را به سیستم اضافه کنند:
- صفحه جدید در CRM
- آیتم جدید در Sidebar
- Dashboard Widget
- Tab جدید برای Company، Contact، Deal یا Project
- Entity Action
- رابطها و Workflowهای اختصاصی
- ارتباط با APIهای HTTPS از محیط sandbox
برای نمونه، یک ماژول Inventory میتواند یک صفحه کامل مدیریت موجودی ایجاد کند، یک Widget برای وضعیت Stock در Dashboard نمایش دهد و یک Tab با عنوان Inventory به صفحه هر Company اضافه کند.
Moduleها در چهار سطح simple، medium، advanced و professional دستهبندی میشوند تا از ابزارهای کوچک تا قابلیتهای سازمانی پیچیده قابل توسعه باشند.
از نظر امنیتی، Moduleهای ZIP در یک iframe ایزوله و sandbox شده اجرا میشوند و بهصورت مستقیم به DOM اصلی، Cookieها، Local Storage یا React State هسته CRM دسترسی ندارند.
مسیر آینده SpentaCRM
SpentaCRM در حال حاضر یک پروژه در حال توسعه فعال است و هدف آن تنها ساخت یک CRM کلاسیک نیست. در مراحل بعدی، توسعه Automation، Integrationهای بیشتر، Analytics، ابزارهای توسعه Module و قابلیتهای مبتنی بر هوش مصنوعی در برنامه پروژه قرار دارند.
یکی از مسیرهای مهم آینده پروژه، حرکت به سمت Agentic CRM است؛ جایی که Agentهای هوشمند بتوانند با درک Context مربوط به مشتریان، Deals، فعالیتها، Tasks و فرآیندهای سازمانی به کاربران در تحلیل، تصمیمگیری و اجرای Workflowها کمک کنند.
هدف نهایی SpentaCRM ایجاد یک CRM واحد و غیرقابل تغییر برای همه شرکتها نیست؛ بلکه ایجاد یک زیرساخت باز و توسعهپذیر است که بتواند برای هر سازمان به یک CRM متفاوت تبدیل شود.
کد منبع پروژه در GitHub بهصورت عمومی در دسترس است و توسعه آن ادامه دارد.