[{"data":1,"prerenderedAt":498},["ShallowReactive",2],{"search-en":3,"content-en-guide\u002Flist-sunsetting":4,"surround-en-\u002Fguide\u002Flist-sunsetting":489},[],{"id":5,"title":6,"body":7,"description":481,"extension":482,"meta":483,"navigation":484,"path":485,"seo":486,"stem":487,"__hash__":488},"content_en\u002F1.guide\u002F53.list-sunsetting.md","List sunsetting",{"type":8,"value":9,"toc":466},"minimark",[10,14,22,27,30,77,80,85,88,101,108,112,115,159,163,170,181,185,209,212,228,235,241,244,248,255,273,277,280,286,302,314,320,323,326,332,342,363,367,374,463],[11,12,13],"p",{},"People who never open your mail are the single biggest reason good mail lands in\nspam. Mailbox providers watch how recipients react far more closely than they\nwatch your content, so a list with a long tail of silent addresses drags down\ndelivery for everyone else on it — including the people who do want to hear from\nyou. Worse, addresses that have been silent for a year are exactly the ones that\nget recycled into spam traps.",[11,15,16,17,21],{},"Owlat handles this for you. It is ",[18,19,20],"strong",{},"on out of the box"," at conservative\nthresholds, because a hygiene feature nobody switches on protects nobody.",[23,24,26],"h2",{"id":25},"what-happens-and-when","What happens, and when",[11,28,29],{},"The clock starts from the last time a contact did something. Two thresholds:",[31,32,33,46],"table",{},[34,35,36],"thead",{},[37,38,39,43],"tr",{},[40,41,42],"th",{},"Quiet for…",[40,44,45],{},"What Owlat does",[47,48,49,64],"tbody",{},[37,50,51,57],{},[52,53,54],"td",{},[18,55,56],{},"180 days",[52,58,59,60,63],{},"Moves the contact onto the ",[18,61,62],{},"re-engagement track",". Nothing is blocked; the contact is flagged so you can build a win-back send from them.",[37,65,66,71],{},[52,67,68],{},[18,69,70],{},"270 days",[52,72,73,76],{},[18,74,75],{},"Auto-suppresses"," the contact. They stop receiving campaigns and automations.",[11,78,79],{},"Both numbers are configurable. Neither one deletes anything.",[81,82,84],"h3",{"id":83},"what-counts-as-not-quiet","What counts as \"not quiet\"",[11,86,87],{},"Anything that shows a person is still there resets the clock:",[89,90,91,95,98],"ul",{},[92,93,94],"li",{},"opening or clicking one of your emails",[92,96,97],{},"replying to you, or writing to you unprompted",[92,99,100],{},"subscribing to a topic, confirming a double opt-in, or being marked as\nconfirmed by an import",[11,102,103,104,107],{},"A contact who ignored a year of newsletters and then fills in your signup form\ntoday is ",[18,105,106],{},"not"," quiet. The clock restarts that day.",[81,109,111],{"id":110},"what-it-will-never-do","What it will never do",[11,113,114],{},"These are guarantees, not defaults:",[89,116,117,123,129,135,147,153],{},[92,118,119,122],{},[18,120,121],{},"It never deletes anything."," A suppression is a reversible state with a\nreason and a timestamp. The contact, their history and their topic\nmemberships are untouched.",[92,124,125,128],{},[18,126,127],{},"It never suppresses a contact who has no history."," A contact you have never\nactually mailed cannot be \"unengaged\" — there was no chance to engage. Absence\nof history is absence of measurement, not evidence.",[92,130,131,134],{},[18,132,133],{},"It never suppresses a new contact."," A contact must have existed, and have\nbeen receiving mail, for longer than the window being applied.",[92,136,137,140,141,146],{},[18,138,139],{},"It never acts on a bad clock."," If the server's clock disagrees with what\nOwlat has recorded, the sweep holds rather than guessing — and the hold does\nnot clear itself. Nothing is suppressed until a person confirms the clock.\nSee ",[142,143,145],"a",{"href":144},"#when-the-sweep-holds-on-the-clock","When the sweep holds on the clock",".",[92,148,149,152],{},[18,150,151],{},"It never runs away."," One sweep can auto-suppress at most a bounded number of\ncontacts. If something systemic ever went wrong, it stops, records what it\nrefused to do, and waits for the next pass.",[92,154,155,158],{},[18,156,157],{},"It never blocks transactional mail."," See below — this one matters.",[23,160,162],{"id":161},"transactional-mail-keeps-flowing","Transactional mail keeps flowing",[11,164,165,166,169],{},"A sunset suppression is a decision about ",[18,167,168],{},"marketing"," mail only. Receipts,\npassword resets, and double-opt-in confirmations are unaffected: a customer who\nignores your newsletter has not asked to stop receiving the receipt for the\nthing they just bought.",[11,171,172,173,176,177,180],{},"Suppressions from a ",[18,174,175],{},"hard bounce"," or a ",[18,178,179],{},"spam complaint"," are different — those\nare evidence about the mailbox itself, and they block everything.",[23,182,184],{"id":183},"tuning-it-per-topic","Tuning it per topic",[186,187,190],"callout",{"title":188,"type":189},"Manage it in Suppressions","info",[11,191,192,193,196,197,201,202,205,206,146],{},"Owners and admins can change the windows from ",[18,194,195],{},"Audience > Suppressions",". The\nunderlying ",[198,199,200],"code",{},"contacts\u002Fsunset:setSunsetPolicy"," mutation requires the\n",[18,203,204],{},"contacts:manage"," permission, and every change is audited as\n",[198,207,208],{},"contact.sunset_policy_updated",[11,210,211],{},"The policy is stored per topic, plus one deployment-wide row.",[89,213,214,221],{},[92,215,216,217,220],{},"The ",[18,218,219],{},"deployment-wide"," setting applies to every contact.",[92,222,223,224,227],{},"Each ",[18,225,226],{},"topic"," can override the windows, or turn sunsetting off entirely for\nits members.",[11,229,230,231,234],{},"When a contact belongs to several topics, the ",[18,232,233],{},"most lenient"," policy wins: the\nlongest window applies, and if any applicable topic has sunsetting switched off,\nthe contact is not sunset. Two conflicting operator intentions resolve towards\n\"don't suppress\".",[11,236,237,238,240],{},"Turning it off ",[18,239,219],{}," turns it off everywhere, whatever the topics\nsay. Clearing a topic override returns that topic to the deployment-wide value.",[11,242,243],{},"The shortest window you can configure is 30 days, and the suppression window\nmust be at least as long as the re-engagement window.",[23,245,247],{"id":246},"exempting-one-contact","Exempting one contact",[11,249,250,251,254],{},"If you know something Owlat does not — a contact who buys every year by phone,\nan address that matters for a reason no click will ever show — set the\n",[18,252,253],{},"per-contact exemption",". An exempt contact is never sunset, at any age, until\nyou clear the exemption.",[186,256,257],{"title":188,"type":189},[11,258,259,260,262,263,266,267,269,270,146],{},"The re-engagement track in ",[18,261,195],{}," shows the exemption and\nlets an owner or admin toggle it. The underlying\n",[198,264,265],{},"contacts\u002Fsunset:setSunsetContactExemption"," mutation requires\n",[18,268,204],{},". Both directions are audited as\n",[198,271,272],{},"contact.sunset_exemption_changed",[23,274,276],{"id":275},"putting-a-contact-back","Putting a contact back",[11,278,279],{},"There are two ways back, and they differ in one important respect.",[11,281,282,285],{},[18,283,284],{},"Audience > Suppressions > Remove"," deletes the suppression row and nothing\nelse. It works for every reason, including a bounce or a complaint. Because it\ndoes not set the exemption, a contact who is still quiet can be sunset again by\na later sweep.",[11,287,216,288,291,292,294,295,298,299,301],{},[18,289,290],{},"Restore"," action in ",[18,293,195],{}," calls\n",[198,296,297],{},"contacts\u002Fsunset:restoreSunsetContact"," (",[18,300,204],{},"). It is the sunset\nengine's own restore, and it is the one that sticks. In one action it:",[303,304,305,308,311],"ol",{},[92,306,307],{},"removes the suppression — but only if the engine wrote it, so bounce and\ncomplaint evidence is never erased,",[92,309,310],{},"puts the contact back on the normal track, and",[92,312,313],{},"sets the per-contact exemption, so the next sweep does not immediately\nsuppress them again.",[11,315,316,317,146],{},"It is recorded as ",[198,318,319],{},"contact.sunset_restored",[23,321,145],{"id":322},"when-the-sweep-holds-on-the-clock",[11,324,325],{},"A clock cannot check itself, so before each pass the sweep compares the server's\ncurrent time against the timestamps Owlat wrote on earlier passes. If \"now\" is\nimplausibly far ahead of them — more than 30 days — the sweep evaluates nothing\nand records why.",[11,327,328,331],{},[18,329,330],{},"This hold does not clear itself."," The sweep is the only thing that writes\nthose timestamps, so a deployment that was switched off for longer than a month\nlooks exactly like a clock that jumped forward, and no later pass can tell the\ndifference on its own. Sunsetting stays off until a person says the clock is\nfine. That is deliberate: pausing is always safe, and quietly suppressing a\nyear's worth of contacts because a VM was restored from a snapshot is not.",[11,333,334,335,337,338,341],{},"You will see it two ways. On ",[18,336,195],{}," a banner reading\n\"Automatic sunsetting is paused\" appears for as long as the hold lasts, and it\nis the only time that banner is shown — a healthy deployment sees nothing. It is\nalso written to the audit log as a ",[198,339,340],{},"contact.sunset_sweep_summary"," entry that\nsuppressed nothing and explains the hold, at most once a day for as long as the\ncondition lasts, so a permanent stall cannot bury the rest of the log.",[11,343,344,347,348,351,352,354,355,358,359,362],{},[18,345,346],{},"To start it again:"," check the machine's system clock first (NTP). Once you\nare satisfied it is correct — including in the ordinary case where the clock was\nnever wrong and the deployment was simply paused — press ",[18,349,350],{},"Confirm clock"," on\nthat banner. Anyone with the ",[18,353,204],{}," permission can do this; the\nunderlying mutation is ",[198,356,357],{},"contacts\u002Fsunset:confirmSunsetClock"," if you would rather\nrun it directly. The confirmation is recorded as\n",[198,360,361],{},"contact.sunset_clock_confirmed",", and becomes the second observation the next\npass compares against, so sweeps resume on the following hourly tick.",[23,364,366],{"id":365},"the-audit-trail","The audit trail",[11,368,369,370,373],{},"Every automatic move is recorded in ",[18,371,372],{},"Settings > Audit log",", including the ones\nthat only flag a contact:",[31,375,376,386],{},[34,377,378],{},[37,379,380,383],{},[40,381,382],{},"Action",[40,384,385],{},"Meaning",[47,387,388,398,408,418,427,436,445,454],{},[37,389,390,395],{},[52,391,392],{},[198,393,394],{},"contact.sunset_reengagement",[52,396,397],{},"Moved onto the re-engagement track.",[37,399,400,405],{},[52,401,402],{},[198,403,404],{},"contact.sunset_suppressed",[52,406,407],{},"Auto-suppressed, with the full decision snapshot.",[37,409,410,415],{},[52,411,412],{},[198,413,414],{},"contact.sunset_resumed",[52,416,417],{},"Engaged again and returned to the normal track.",[37,419,420,424],{},[52,421,422],{},[198,423,319],{},[52,425,426],{},"An operator put the contact back.",[37,428,429,433],{},[52,430,431],{},[198,432,272],{},[52,434,435],{},"An operator changed the per-contact exemption.",[37,437,438,442],{},[52,439,440],{},[198,441,208],{},[52,443,444],{},"Someone changed the windows.",[37,446,447,451],{},[52,448,449],{},[198,450,340],{},[52,452,453],{},"A summary of any sweep that suppressed, or refused to suppress, contacts.",[37,455,456,460],{},[52,457,458],{},[198,459,361],{},[52,461,462],{},"An operator confirmed the server clock and re-armed a held sweep.",[11,464,465],{},"Every suppression entry names the reason and carries the numbers the decision was\nmade from, so \"why did this address stop receiving mail\" always has an answer.",{"title":467,"searchDepth":468,"depth":468,"links":469},"",2,[470,475,476,477,478,479,480],{"id":25,"depth":468,"text":26,"children":471},[472,474],{"id":83,"depth":473,"text":84},3,{"id":110,"depth":473,"text":111},{"id":161,"depth":468,"text":162},{"id":183,"depth":468,"text":184},{"id":246,"depth":468,"text":247},{"id":275,"depth":468,"text":276},{"id":322,"depth":468,"text":145},{"id":365,"depth":468,"text":366},"Owlat automatically stops mailing contacts who have ignored everything you sent for 180 and then 270 days — how it decides, how to tune it per topic, and how to put a contact back.","md",{},true,"\u002Fguide\u002Flist-sunsetting",{"title":6,"description":481},"1.guide\u002F53.list-sunsetting","CvKAspEUEYCeAz4UbrFyyYhpPbkcEAlwIiGPaNrFiL8",[490,494],{"title":491,"path":492,"stem":493,"children":-1},"Secure Email, Explained","\u002Fguide\u002Fsecure-email","1.guide\u002F52.secure-email",{"title":495,"path":496,"stem":497,"children":-1},"Media Library","\u002Fguide\u002Fmedia-library","1.guide\u002F6.media-library",1786915102457]