Field reference

Every field on every Marketing form: label in English and Arabic, type, whether it is required, its limits, a valid example and what the system refuses.

On this page (34)

Marketing Dashboard

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
PeriodالفترةSelectYesLast 30 / 90 / 180 / 365 days; API accepts days 1-730Last 30 daysLast 90 daysAPI ?days=0 or 731 -> 422 validation error (FastAPI)

Campaign form

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
CodeالرمزRead-onlyAutoCMP-0001, CMP-0002 ... per company (count + 1, skips a code already used); max 30Next number(auto)
Campaign (name)الحملةTextYesColumn max 160; the server cuts text at 300 before saving (register label is English only in code)Ramadan Offers 2026Empty -> 'Campaign is required.'; 200 characters -> on PostgreSQL a database error (not a friendly message)
ObjectiveالهدفSelectYesAwareness, Traffic, Engagement, Lead generation, Sales / conversions, App installs, Retention / loyaltyLead generationEmpty -> 'Objective is required.'; a value not in the list (API) -> 'Choose one of the options.'
ChannelsالقنواتMulti-selectNoFacebook, Instagram, LinkedIn, TikTok, Snapchat, YouTube / Google, X / Twitter, WhatsApp, Email, Website, Other. Unknown values are silently droppedInstagram, WhatsAppAPI ['facebook','fax'] -> saved as ['facebook'] (no error)
StartالبدايةDateNoISO date2026-10-05'2026-13-01' (API) -> 'Start is not valid.'
EndالنهايةDateNo (field setting can make it Required / Hidden)On or after Start. Field setting marketing.campaign.end_date2026-11-05End before Start -> 'The end cannot be before the start.'
BudgetالميزانيةMoneyNoDecimal, 2 places; negative amounts are NOT refused015000.00'abc' -> 'Budget is not valid.'; -500 -> accepted today (log)
CurrencyالعملةTextNoNot listed; saved as the first 3 letters upper-cased; empty = AED; not checked against a currency listAEDAED'usd' -> 'USD'; 'XYZ1' -> 'XYZ' (no error)
OwnerالمسؤولSelect (company users)NoUsers with a membership in this companyA marketing user
BranchالفرعSelect (branch dimension)NoBranch dimension values of this companyDubai branch
StatusالحالةSelectYesDraft, Planned, Active, Paused, Completed, Cancelled - any status can be chosen directly (no lifecycle rules)DraftEmpty -> 'Status is required.'
utm_campaignوسم UTM للحملةTextNo (field setting)Max 120. Empty = made from the name: lower-case, non-letters -> '_' (e.g. 'Ramadan Offers 2026' -> 'ramadan_offers_2026'). Used to match leads to this campaign(from name)ramadan26130 characters -> database error on PostgreSQL (server cuts at 300, column is 120)
Target leadsالعملاء المستهدفونWhole numberNo (field setting)Integer0250'12.5' -> 'Target leads is not valid.'
Target revenueالإيراد المستهدفMoneyNoDecimal0300000'1,000' -> 'Target revenue is not valid.'
Descriptionوصف الحملةLong textNo (field setting)Up to 20,000 charactersRamadan offers on Instagram and WhatsApp, Dubai and Sharjah

Ad account form

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
PlatformالمنصةSelectYesFacebook, Instagram, LinkedIn, TikTok, Snapchat, YouTube / Google, X / Twitter, Other (no WhatsApp / Email / Website)FacebookEmpty -> 'Platform is required.'
NameالاسمTextYesMax 160Test Meta Ads AccountEmpty -> 'Name is required.'
Account idمعرف الحسابTextNoMax 120 (platform's ad account id, without act_)1234567890 (sandbox)
CurrencyالعملةTextNoColumn max 3; NOT upper-cased or cut on ad accountsAEDAED'AEDX' -> database error on PostgreSQL
Pixel / dataset / conversion idمعرف البكسلTextNoMax 120; needed before conversions can be sentTest pixel id from the sandbox
Access token (stored sealed)رمز الوصولSecretNoSealed on save; never returned - the list returns blank and a 'has token' flag; leaving it blank on edit keeps the old tokenSandbox token onlyRe-open the record: the token box is empty (correct)
StatusالحالةSelectYesManual entry, Connected, Disconnected, Error. Choosing 'Connected' is what turns on real calls to the platformManual entryEmpty -> 'Status is required.'
BranchالفرعSelectNoBranch dimension(empty)
Last syncآخر مزامنةRead-only-Not set by any code path today(empty)
ActiveنشطTick boxNoNew form starts tickedTickedTicked

Ad campaign form

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
Ad campaign (name)الحملة الإعلانيةTextYesMax 160RMD26 - Instagram LeadsEmpty -> 'Ad campaign is required.'
Marketing campaignالحملة التسويقيةSelectNoThis company's campaigns (code + name)CMP-0001 Ramadan Offers 2026
Ad accountالحساب الإعلانيSelectNoAd accounts of this company; platform of the account is not compared with the Platform fieldTest Meta Ads Account (facebook)
PlatformالمنصةSelectYesAs ad accountsInstagramEmpty -> 'Platform is required.'
ObjectiveالهدفSelectYesAs campaign objectivesLead generationEmpty -> 'Objective is required.'
Lead campaignحملة عملاءTick boxNoTicked = shows under Lead Campaigns and as 'Lead form' chip in the campaign structureNot tickedTicked
Lead formنموذج العملاءTextNoMax 160Ramadan enquiry form
Platform idمعرف المنصةTextNoMax 120(empty)
Daily budgetالميزانية اليوميةMoneyNoDecimal; negatives not refused0500'x' -> 'Daily budget is not valid.'
Lifetime budgetالميزانية الإجماليةMoneyNoDecimal; not compared with the campaign budget010000'x' -> 'Lifetime budget is not valid.'
Start / Endالبداية / النهايةDateNoEnd before Start is NOT refused on ad campaigns (only on campaigns)2026-10-05 / 2026-10-30End 2026-10-01, Start 2026-10-05 -> saved today (log)
StatusالحالةSelectYesDraft, Active, Paused, Completed, ArchivedActiveEmpty -> 'Status is required.'

Ad set form

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
Ad set (name)المجموعة الإعلانيةTextYesMax 160Dubai women 25-40Empty -> 'Ad set is required.'
Ad campaignالحملة الإعلانيةSelectYesAd campaigns of this companyRMD26 - Instagram LeadsEmpty -> 'Ad campaign is required.'
AudienceالجمهورSelectNoAudiences of this companyHigh value customers
BudgetالميزانيةMoneyNoDecimal03000'x' -> 'Budget is not valid.'
TargetingالاستهدافLong textNoFree text, up to 20,000UAE, Dubai + Sharjah, 25-40, Arabic and English
Platform idمعرف المنصةTextNoMax 120(empty)
StatusالحالةSelectYesDraft, Active, Paused, Completed, ArchivedActiveEmpty -> 'Status is required.'

Creative form

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
Creative (name)المادة الإعلانيةTextYesMax 160Reel - Iftar offer 20%Empty -> 'Creative is required.'
CampaignالحملةSelectNoCampaigns of this companyCMP-0001
Ad setالمجموعة الإعلانيةSelectNoAd sets of this company. A creative without an ad set shows as a loose creative in the campaign structureDubai women 25-40
FormatالصيغةSelectYesImage, Video, Carousel, Story, Reel, Text, Lead form, Message / click-to-WhatsAppReelEmpty -> 'Format is required.'
HeadlineالعنوانTextNoMax 30020% off at Iftar
Primary textالنص الأساسيLong textNoUp to 20,000Order before 6 pm for delivery in Dubai
Call to actionالدعوة لاتخاذ إجراءTextNoColumn max 60, server cuts at 300Send WhatsApp message70 characters -> database error on PostgreSQL
Media URL / Landing pageرابط الوسائط / صفحة الهبوطTextNoColumn max 500 but the server silently cuts at 300; not checked as a URLhttps://example.test/ramadan?utm_source=instagramA 400-character URL -> saved cut to 300 without a message (log)
utm_contentوسم UTM للمحتوىTextNoMax 120reel_iftar
StatusالحالةSelectYesDraft, Active, Paused, Completed, ArchivedDraftEmpty -> 'Status is required.'

Delivery form

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
DateالتاريخDateYesOne row per day per item (company, day, level, item)2026-10-06Empty -> 'Date is required.'; same day + item again -> 'That day is already entered for this item - edit it instead.'
CampaignالحملةSelectYesCampaigns of this companyCMP-0001Empty -> 'Campaign is required.'
LevelالمستوىSelectYesCampaign, Ad campaign, Ad set, Creative. ROI uses only the most summary level entered for a campaign (campaign first), so nothing is counted twiceCampaignEmpty -> 'Level is required.'
Ad campaign / ad set / creativeالعنصرSelectNoIgnored when Level = Campaign (set to the campaign). Not checked to belong to the chosen campaign(empty for Campaign level)
PlatformالمنصةSelectNoAd platformsInstagram
SpendالإنفاقMoneyYesDecimal; negative not refused450.75Empty -> 'Spend is required.'; 'abc' -> 'Spend is not valid.'
Impressions / Reach / Clicks / Platform leadsمرات الظهور / الوصول / النقرات / عملاء المنصةWhole numbersNoIntegers012000 / 9000 / 340 / 12'1.5' -> 'Impressions is not valid.' (etc.)
SourceالمصدرSelectNoManual, Import, Platform APIManualManual

Delivery > Import CSV

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
CSV fileملف CSVFile (.csv)YesHeader row: date, campaign, spend, impressions, reach, clicks, platform_leads, platform. 'campaign' = campaign code or utm_campaign. Campaign level only. Max 5,000 rows read. Existing day = updated. Commas inside quotes are NOT supported by the screen's parserdate,campaign,spend,impressions,clicks\n2026-10-06,CMP-0001,450,12000,340Unknown campaign -> 'Row 2: no campaign 'XYZ''; bad date -> 'Row 3: the date is not valid'; 'abc' spend -> 'Row 4: a number is not valid'

Audience form

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
Audience (name)الجمهورTextYesMax 160 (register label English only)High value customers DubaiEmpty -> 'Audience is required.'
TypeالنوعSelectYesDynamic (rule) - rebuilt from the rule every time; Static list - keeps people added by handDynamic (rule)Empty -> 'Type is required.'
PurposeالغرضSelectYesMarketing, Newsletter, Promotions / offers, Transactional / service, Support, Profiling / ads. Transactional and Support are always 'reachable' (service messages)MarketingEmpty -> 'Purpose is required.'
Members / Reachable / Statusالأعضاء / القابلون للوصول / الحالةRead-only-Counted on save and on Rebuild; status 'ready' after a build(auto)
RuleالقاعدةJSONNoAn object. Empty = {"base": "customers", "channel": "whatsapp"}. base: customers | leads | inactive_customers | high_value | by_product | by_industry | by_location | abandoned_quotations | repeat_customers | static. channel = the consent channel counted for Reachable. An unknown base gives 0 members, no error{"base":"customers","channel":"whatsapp"}{"base":"high_value","min_value":20000,"channel":"whatsapp"}'{base:' -> 'That is not valid JSON.' (screen); '[1,2]' (API) -> 'Give an object.'
DescriptionالوصفLong textNoUp to 20,000Customers who spent 20k+ AED

Audience form > Rule keys

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
Extra rule keysمفاتيح القاعدةJSON keysNoleads: tag, source, country (open, not archived, not 'do not contact'). inactive_customers: days (default setting, 90). high_value: min_value (default setting 50,000). repeat_customers: min_orders (2). by_product: product_id. by_industry: industry. by_location: country, city. abandoned_quotations: days (14; draft sales between days and days x 6 old). Any base: market{"base":"leads","source":"Instagram Lead Ads","country":"AE"}

Audience record > Add member

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
name / email / phoneالاسم / البريد / الهاتفTextOne of phone or emailLabels shown as raw keys 'name', 'email', 'phone' in both languages. Key = phone digits (leading zeros dropped) or lower-case emailTest Person / test1@example.test / +971501234567All empty -> 'Give a contact, a phone number or an email.'

Audience record

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
Platform (sync)المنصةSelectYesfacebook, instagram, linkedin, tiktok, snapchat, youtube. Needs an ACTIVE ad account on that platform. Real upload only for Facebook/Instagram with status ConnectedfacebookfacebookNo ad account -> 'Connect an ad account on that platform first (Campaigns > Ad Accounts).'
FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
name / phone / emailالاسم / الهاتف / البريدTextOne of phone, email or contactLabels shown as raw keys. Phone stored as digits only with leading zeros dropped; email lower-cased (format not checked). Name max 160Test Person / +971501234567 / test1@example.testAll empty -> 'Say who: a contact, a phone number or an email.'
sourceالمصدرTextNoMax 120 (raw key label)Dubai mall stand form
ChannelالقناةSelectYesWhatsApp, Email, SMS, Instagram, Facebook / Messenger, Telegram, Phone call, LinkedIn, TikTok, Snapchat, Website, Any channel. 'Any channel' applies to every channelWhatsAppWhatsAppAPI 'fax' -> 'Choose the channel.'
PurposeالغرضSelectYesMarketing, Newsletter, Promotions / offers, Transactional / service, Support, Profiling / adsMarketingMarketingAPI 'spam' -> 'Choose the purpose.'
StatusالحالةSelectYesOpted in, Opted out, Unknown (Expired is hidden on the form but accepted by the API)Opted inOpted inAPI 'maybe' -> 'Choose the status.'
Consent typeنوع الموافقةSelectNoExplicit, Double opt-in, Verbal / call, Contract / terms, Implied (existing customer), Legitimate interest. API value not checked against the list (column 24)ExplicitExplicit (form / message)API 'anything' -> saved as-is (log)
EvidenceالدليلLong textNoMax 5,000 (history keeps 2,000)Ticked the WhatsApp offers box on the stand form, 6 Oct 2026 14:10 Dubai
Expires (calculated)الانتهاءRead-only-Opted in: expires = now + 30 x 'Consent expires after (months)' days (24 months default = 720 days); 0 = never. Opted out: opt-out date set(auto)

Rule form

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
NameالاسمTextYesMax 160 (trimmed)WhatsApp price enquiry -> leadEmpty -> 'Name the rule.'
When (trigger)عندماSelectYesLead created, Lead qualified, Opportunity created, Message received, New conversation, Form / lead ad submitted, Comment received, Quotation created, Order confirmed, Invoice posted, Invoice due, Invoice overdue, Payment received, Customer inactive, Consent opted out, Started by handMessage receivedLead createdAPI 'birthday' -> 'Choose the trigger.'
Conditions mustيجب أن تتحققSelectYesall match / any match; anything else saved as 'all'all matchall match
OrderالترتيبNumberNoRules run lowest first; empty/0 = 10105API 'abc' -> server error (int() not caught) - log
Conditions (Field / Operator / Value)الشروطRowsNoFields: Channel, Message text, Contact type, Lead status, Source, Campaign, Country, Language, Value / amount, Tags, Priority, Product, Platform, Days overdue, Days inactive, VIP, Customer replied since the wait, Team, Within business hours. Operators: =, ≠, contains, does not contain, is one of, >, <, is set, is not set. Value max 300; 'contains' takes a|b alternatives; 'is one of' takes a,bMessage text contains price|سعرField empty (API) -> 'Choose a field for every condition.'; bad operator -> 'Choose an operator for every condition.'
THEN (actions)إذنRowsYes (1+)Create CRM task, Assign lead owner, Add tag, Set priority, Notify salesperson, Send email, Add to audience, and Omnichannel actions (Create lead from conversation, Assign conversation to team / person, Set conversation priority, Send WhatsApp, Send reply, Tag the conversation, Create support ticket, Set conversation label)Create lead from conversationAdd tag 'ramadan'No actions -> 'Add at least one action.'; unknown type (API) -> 'Choose what every action does.'
Stop other rules after this oneإيقاف القواعد الأخرىTick boxNoWhen this rule matches, later rules for the same event are not run (journeys still start)Not tickedTicked

Action > Create CRM task

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
Subject / Due in (days) / Typeالموضوع / بعد (أيام) / النوعText / number / selectNoSubject max 180 (default 'Follow up'); due = server date + days; Type call/email/meeting/task. Skipped if the lead has no ownerCall about Ramadan offer / 1 / CallLead without owner -> log 'skipped: no record or nobody to give the task to'

Action > Assign lead owner

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
PersonالشخصSelect (users)NoEmpty = round robin over reps/managers of the lead's team; person must be a member of this companySales userTeam without reps -> 'skipped: nobody on that team'

Action > Add tag

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
TagالوسمTextYesMax 40; a lead keeps at most 20 tagsramadan26Empty -> log 'skipped: no lead or no tag'

Action > Set priority

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
PriorityالأولويةSelectNoLow, Normal, High, Urgent; empty = HighHigh

Action > Notify salesperson

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
NotificationالإشعارTextNoMax 160; default 'Automation: follow up'; goes to the lead ownerNew Ramadan lead - call within 1 hour

Action > Send email

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
Subject / Body (HTML)الموضوع / النصText / long textNoSent through Administration > Email account; consent for channel Email checked first; kept on the record timelineYour Ramadan offer / <p>Hello</p>No consent -> log 'skipped: No consent recorded'; no mail account -> 'skipped: set up email sending for this company first'

Action > Add to audience

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
AudienceالجمهورSelectYesAudiences of this companyRamadan respondersEmpty -> log 'skipped: no such audience'

Action > Send WhatsApp (Omnichannel)

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
Template / variables / Free textالقالب / المتغيرات / نص حرSelect / textTemplate or textOnly approved templates listed; variables comma separated ({name}); free text only inside the 24 h window. Needs Omnichannel + WhatsApp sandbox numberramadan_welcome / {name}

Journey builder

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
Journey nameاسم الرحلةTextYesMax 160Instagram lead welcomeEmpty -> 'Name the journey.'
Trigger stepالمشغلSelect + conditionsYesSame trigger list as rules; trigger filter conditions always 'all match'. Exactly one trigger stepLead createdLead created, Source contains InstagramAPI with 2 trigger steps -> 'A journey starts with exactly one trigger.'
Allow re-entryالسماح بإعادة الدخولTick boxNoOff: the same lead/contact runs the journey only once everOffOff
Step labelتسمية الخطوةTextNoMax 160Welcome message

Journey builder > Wait

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
days / hours / minutes; or until the customer repliesانتظارNumbers + tickNoTotal minutes (minimum 1). The clock checks every minute. 'until reply' wakes early when a message arrives (Omnichannel)1 day0 / 0 / 2-5 minutes -> treated as 1 minute

Journey builder > Condition

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
ConditionsشرطRowsNoAs rule conditions; Yes path = match, No path = elseCustomer replied since the wait is set

Journey builder > Branch (A/B)

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
A %تفرعNumberNoScreen 1-99, B = 100 - A; server does not check the range5070API 150 -> every run goes A (log)

Test the journey

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
name / phone / email / deal_id / partner_idاختبار الرحلةTextNoRaw key labels. Empty deal/partner = a made-up subject 'test-<time>'. The trigger filter is NOT applied; re-entry forced onname 'Test Person'deal_id of a test leadAPI with no deal/partner/subject -> 'Choose a lead or a contact to run it for.'

Campaign ROI

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
From / Toمن / إلىDateNoFilters delivery by day and leads by their attribution date (UTC); empty = all time2026-10-01 / 2026-10-31API ?start=abc -> server error (date not checked, analytics.py:20) - log

Marketing Settings > Attribution

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
ModelالنموذجSelectYesFirst touch, Last touch, Linear (split evenly over the lead's touches)Last touchLinear (split evenly)API 'u_shaped' -> 'Choose an attribution model.'
Attribution window (days)نافذة الإسناد (أيام)Whole numberYes0-3650. For a lead without a CRM-linked quotation, the partner's sales up to this many days after the lead count; 0 = 180180904000 -> 'Between 0 and 3650.'; 'abc' -> 'Give a whole number.'
Reporting currencyعملة التقاريرTextNoFirst 3 letters upper-cased; empty = AED; not checked against a list. Conversion events carry itCompany currency (AED)AED'dirham' -> saved as 'DIR' (no error) - log
FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
Consent expires after (months, 0 = never)تنتهي الموافقة بعد (أشهر)Whole numberYes0-3650; applied to opt-ins recorded after the change (30 days per month)2412-1 -> 'Between 0 and 3650.'
Double opt-inتأكيد مزدوجTick boxNoStored only - no effect todayOffOff
Treat unknown consent as allowed (not recommended)اعتبار الموافقة غير المعروفة مسموحةTick boxNoOn: a person with no consent record may receive marketing ('Unknown - allowed by company setting')OffOff

Marketing Settings > Audiences

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
Inactive after (days)غير نشط بعد (أيام)Whole numberYes0-3650; used by the inactive_customers base and the daily 'Customer inactive' trigger (0 = trigger off)9060'x' -> 'Give a whole number.'
High value fromقيمة عالية منAmountNoTotal posted invoice net per customer for the high_value base; negative not refused50000.0020000'abc' -> 'Give an amount.'

Marketing Settings > Send conversions to

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
facebook / instagram / linkedin / tiktok / snapchat / youtubeإرسال التحويلات إلىTick boxesNoTicked = conversion events of leads attributed to that platform are dispatched (needs an active ad account with a pixel id). YouTube has no sender in code (always 'failed')All offfacebook ticked

Applications > Marketing > Features

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
Automation and journeysالأتمتة ورحلات العملاءSwitch-Off: POST/PUT/PATCH/DELETE under marketing/automation(s) and marketing/journeys refused; menus Automation group and Rules hidden; existing records stay readableOnOff then OnSave a rule while off -> 409 'Automation and journeys is disabled for this company.'
Attribution, conversions and ROIالإسناد والتحويلات والعائدSwitch-Off: changes under marketing/attribution, marketing/conversions, marketing/roi refused (only 'Scan ERP events now' is a change); no menus listedOnOffScan ERP events now while off -> 409 'Attribution, conversions and ROI is disabled for this company.'
Campaigns and audiences / Consent registersالحملات والجماهير / سجلات الموافقةAlways on-Core - cannot be switched off; Consent is protectedOn(no switch shown)

Applications > Marketing > Fields

FieldArabic labelTypeRequiredRules and limitsDefaultExampleRefused when
Campaign description / end date / UTM campaign tag / Target leadsوصف الحملة / تاريخ الانتهاء / وسم UTM / العملاء المستهدفونField rule-Hidden: not shown on the campaign form (unless it already holds a value) and a value sent on a NEW campaign is refused. Required: campaign not saved without itShownEnd date = RequiredRequired end date, Save without it -> refused with a field message on End