پشتیبانی واتساپ

راهنمای سیستم اتوماسیون میزکار

میزکار

۱۸ تیر ۱۴۰۵
زمان مطالعه: ۵ دقیقه

راهنمای شروع (زبان ساده): اگر تازه با اتوماسیون آشنا می‌شوید، اول اتوماسیون میزکار چیست و چطور کار می‌کند؟ را بخوانید. این پست مرجع فنی است (فیلدها، Expression، توکن‌ها).

این قابلیت چیست؟

اتوماسیون به شما اجازه می‌دهد بدون کدنویسی، وقتی روی موجودیت‌های میزکار رویدادی رخ می‌دهد (ایجاد، ویرایش، حذف، تغییر وضعیت فرایند)، شرطی را بررسی کنید و اکشن خودکار اجرا شود: پیامک، تسک، یادداشت، نوتیفیکیشن، ساخت آیتم فرم، وب‌هوک، تغییر گام فرایند، یا مسدود کردن عملیات.

کجا در پنل پیدا می‌شود؟

بخش

مسیر

قوانین

تنظیمات → فرایندها → قوانین اتوماسیون (/settings/automation-rules)

لاگ اجرا

تنظیمات → فرایندها → لاگ اتوماسیون (/settings/automation-logs)

تاریخچه زیر موجودیت

صفحه جزئیات فاکتور، تراکنش، قرارداد، پروژه، کارمند، سند انبار، مخاطب

قوانین مرتبط با گام

تنظیمات → گام‌های فرایند → ویرایش گام


ساختار یک قانون

فیلد

توضیح

Scope

نوع موجودیت هدف (مثلاً InvoiceSales)

EventType

Created, Updated, Deleted, StatusChanged

TrackStepId

فقط برای StatusChanged — گام فعلی موجودیت

ScopeEntityId

فقط برای FormItem — شناسه فرم (FormId)

Expression

شرط اختیاری (خالی = همیشه اجرا)

ActionType + پارامترها

اکشن و JSON پارامترها

OrderIndex

ترتیب ارزیابی (کمتر = زودتر)

IsActive

فعال / غیرفعال


Scopeها (موجودیت هدف)

Scope

موجودیت

رویدادهای پشتیبانی‌شده

Contact

مخاطب

Created, Updated, Deleted

InvoiceSales

فاکتور فروش

همه + StatusChanged

InvoicePurchase

فاکتور خرید

همه + StatusChanged

TransactionReceipt

تراکنش دریافت

همه + StatusChanged

TransactionPayment

تراکنش پرداخت

همه + StatusChanged

TransactionCost

تراکنش هزینه

همه + StatusChanged

FormItem

آیتم فرم

همه + StatusChanged (+ ScopeEntityId)

Project

پروژه

همه + StatusChanged

Employee

کارمند

همه + StatusChanged

Contract

قرارداد

همه + StatusChanged

WarehouseDocument

سند انبار

همه + StatusChanged


متغیرهای مشترک Expression

در همه scopeها این متغیرها در دسترس‌اند:

متغیر

معنی

نام موجودیت مبدأ (Invoice, Contact, …)

شیء کامل موجودیت رویداد

Entity

همان موجودیت (alias)

Scope

رشته scope (مثلاً InvoiceSales)

Operation

نوع رویداد (Created, …)

CurrentStep / NextStep

فقط StatusChanged — شیء TrackStep

غنی‌سازی خودکار context (AutomationContextEnricher)

کلید اضافه‌شده

چه زمانی

Contact

وقتی موجودیت مبدأ یا مرتبط مشتری دارد

ContactId

شناسه مشتری resolve‌شده

ContactTagIds

آرایه شناسه تگ‌ها — برای Contains در expression

Invoice

تراکنش دارای InvoiceId

Project

تراکنش دارای ProjectId (وقتی Contact مستقیم نیست)


فیلدهای موجودیت در Expression (به تفکیک context)

فیلدهای پایه (همه WorkSpaceEntity)

فیلد

نوع

توضیح

Id

int

شناسه

WorkSpaceId

int

میزکار

CreatedOn

DateTimeOffset

زمان ایجاد

ModifiedOn

DateTimeOffset?

آخرین ویرایش

CreatedById

int

ایجادکننده

ModifiedById

int?

ویرایش‌کننده

IsDeleted

bool

حذف منطقی

فیلدهای فرایند (WorkSpaceTrackableEntity)

فیلد

نوع

توضیح

TrackStatus

enum

Draft, Active, Completed, Canceled

TrackId

int?

فرایند

TrackStepId

int?

گام فعلی

AssignToUserId

int?

مسئول

AssignToRoleId

int?

نقش مسئول

EntityTitle

string

عنوان نمایشی

Contact (Scope: Contact)

فیلد

نوع

IsAccount

bool — شخص / شرکت

Title, FirstName, LastName, Name

string

DisplayName

string (محاسباتی)

ContactPrefixId

int?

NationalCode, EconomicCode

string

BirthDate

date?

Balance

decimal

ParentId, LeadSourceId, AssignToId

int?

ExternalCode1, ExternalCode2

string

Description

string

Addresses

collection — Count در expression

Links

collection — موبایل در LinkType == Mobile

ContactInContactTags

collection

Context اضافه: ContactTagIds (آرایه int)

Invoice — Scope: InvoiceSales / InvoicePurchase

فیلد

نوع

Type

Sales / Purchase

Code, PublicToken

string

ExternalCode1, ExternalCode2

string

HeaderNote, FooterNote

string

TotalItemsAmount, TotalItemsTaxAmount, FinalAmount

decimal

TotalCosts, TotalCommission, TotalPayments, TotalReceipts

decimal

RemainingAmount

decimal (محاسباتی)

Profit, NetProfit

decimal?

DueDate, SettlementDate, DeliveryDate

DateTimeOffset

AveragePaymentDate, AverageReceiptDate

DateTimeOffset?

ContactId, CompanyId, ProjectId, FormItemId

int?

SalesPersonId, MarketerId, SalesTeamId

int

DeliveryAddressId, DeliveryAddressFull

IsSupplyCompleted

bool

InvoiceItems

collection

EntityTitle

string

Context اضافه: Contact, ContactId, ContactTagIds

Transaction — Scope: TransactionReceipt / Payment / Cost

فیلد

نوع

TransactionType

enum

ExternalCode1, ExternalCode2

string

TransactionCategoryId, TransactionMethodId

int

DueDate, PaidDate

DateTimeOffset

Amount

decimal

AllocatedAmount, RemainingAmount

decimal (محاسباتی)

InvoiceId, ContactId, ProjectId, ContractId, EmployeeId, FormItemId, WarehouseDocumentId

int?

ContactFullName, CardNumber, ShebaNumber, Description

string

EntityTitle

string

Context اضافه: Contact, ContactId, ContactTagIds, Invoice (اگر InvoiceId دارد), Project (اگر ProjectId و بدون Contact مستقیم)

FormItem — Scope: FormItem (+ ScopeEntityId = FormId)

فیلد

نوع

FormId

int

Code

int

PublicCode

string — برای لینک عمومی

JsonData

string — داده JSON فرم

Related

collection ارتباط با Invoice, Contact, …

EntityTitle

string

Context اضافه: Contact از Relatedهای فرم

Project — Scope: Project

فیلد

نوع

Code

int

Title, Description

string

ContactId, ManagerId

int?

StartDate, EndDate

DateTimeOffset?

EntityTitle

string

Context اضافه: Contact اگر ContactId دارد

Employee — Scope: Employee

فیلد

نوع

Code, ExternalCode

string

FirstName, LastName

string

DateOfBirth, Gender, IsMarried, NumberOfChildren

EducationDegreeId, JobPositionId, UserId, ManagerId

int?

NationalCode, FatherName

string

BankId, BankIBAN, BankNumber

BaseDailyWage, BaseMonthlySalary, …

long (مزایا)

Email, Mobile1, Mobile2, Tel1, Tel2

string

StateId, CityId, Address, ZipCode

EntityTitle

string

Contract — Scope: Contract

فیلد

نوع

Code, ExternalCode

string

DurationType, Duration

FromDate, ToDate

DateTimeOffset

Terms

string

Amount

decimal

CompanyId, ContactId, ProjectId, EmployeeId, JobPositionId

int?

TemplateId, OutputPdfFileId

int

EntityTitle

string

Context اضافه: Contact اگر ContactId دارد

WarehouseDocument — Scope: WarehouseDocument

فیلد

نوع

WarehouseDocumentTypeId

int

Type

enum (Receipt, Issue, Transfer, …)

Code, ExternalCode

string

DocumentDate

DateTimeOffset

SourceWarehouseId, DestinationWarehouseId

int?

InvoiceId, FormItemId, ContactId

int?

ResponsibleUserId

int?

Note

string

WarehouseDocumentItems

collection

EntityTitle

string

Context اضافه: Contact اگر ContactId دارد

TrackStep (در CurrentStep / NextStep)

فیلد

نوع

Id, TrackId

int

Title, Description

string

OrderIndex

int

TrackStatus

enum

Color

string

OwnerId, OwnerRoleId

int?

AssignmentType

FixedOwner, CreatedBy, CreatedByManager

IsReadOnly, IsPrintExportDisabled, IsDescriptionRequired

bool


اکشن‌ها و پارامترها

ActionType

پارامترهای اصلی

CreateFormItem

formId, skipIfExists, jsonData

SendSms

message, receptor / receptorFrom: Contact

CreateNote

text, fileId

CreateNotification

receiverUserId یا receiverFrom, message

CreateTask

title, description, dueInHours, assignToId, priority, tags

CallWebhook

url, method, headers, body, includeEntity

ChangeTrackStep

trackStepId — inline، ارزیابی متوقف می‌شود

Block

message — عملیات را در همان تراکنش متوقف می‌کند


توکن‌های پیامک (SendSms)

وقتی receptorFrom: Contact باشد، در message می‌توانید از {{...}} استفاده کنید:

توکن

منبع

Contact.FirstName, Contact.LastName, Contact.Name, Contact.DisplayName

مخاطب

Contact.Mobile

اولین لینک نوع Mobile

Invoice.Code, Invoice.FinalAmount, Invoice.DueDate

فاکتور

Form.Title

تعریف فرم

FormItem.PublicCode, FormItem.Code

آیتم فرم

FormItemLink

لینک عمومی ویرایش فرم

Transaction.Amount, Transaction.DueDate

تراکنش

Project.Title, Project.Code

پروژه

دکمه پیش‌نمایش پیام در modal قانون (برای SendSms) نمونه resolve را نشان می‌دهد.


Expression — نمونه‌های رایج

Invoice.FinalAmount > 5000000
Contact.Balance < 0
Contact.LeadSourceId == null
Contact.Addresses.Count == 0
ContactTagIds.Contains(15)
Invoice.FinalAmount >= 100 && NextStep.Id == 42

Expression خالی = قانون همیشه (در صورت match شدن scope/event) اجرا می‌شود.


لاگ و عیب‌یابی

  • لاگ مرکزی: فیلتر بر اساس تاریخ، scope، action، event، matched

  • زیر موجودیت: کارت «تاریخچه اتوماسیون»

  • فیلدهای مهم: matched, evalError, وضعیت صف (AutomationActionQueue)


منابع

اشتراک‌گذاری این مقاله:

آماده استفاده از میزکار هستید؟

همین حالا به‌صورت رایگان شروع کنید و تفاوت را تجربه کنید

شروع رایگان با میزکار