Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions _data/editorial/en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -390,3 +390,22 @@ channel-webchat:
actions:
- View tracking
id: channel-webchat
custom-bcc29206ce14b1ed:
version: 1
title: An SMS campaign introducing a new collection
caption: Illustrative SMS from the fictional store Luma. It introduces a new collection
with a demonstration link and opt-out text. The link is inert and no message is
sent.
panels:
- label: New collection
context: An example of a one-time campaign for an audience that accepts SMS.
channel: sms
business: Luma
messages:
- type: text
side: business
text: 'Luma: explore the new collection at example.com/new. Reply STOP to opt
out'
time: '10:00'
id: custom-bcc29206ce14b1ed
type: messages
19 changes: 19 additions & 0 deletions _data/editorial/es.yml
Original file line number Diff line number Diff line change
Expand Up @@ -395,3 +395,22 @@ channel-webchat:
actions:
- Ver seguimiento
id: channel-webchat
custom-e5d0ebc899b77888:
version: 1
title: Una campaña SMS para presentar una nueva colección
caption: SMS ilustrativo de la tienda ficticia Luma. Presenta una nueva colección
con un enlace de demostración y la salida BAJA para salir. El enlace es inerte
y no se envía ningún mensaje.
panels:
- label: Nueva colección
context: Ejemplo de una campaña puntual dirigida a una audiencia que acepta SMS.
channel: sms
business: Luma
messages:
- type: text
side: business
text: 'Luma: descubre la nueva colección en example.com/novedades. BAJA para
salir'
time: '10:00'
id: custom-e5d0ebc899b77888
type: messages
157 changes: 153 additions & 4 deletions _i18n/en/campaigns/creating-a-campaign.md

Large diffs are not rendered by default.

159 changes: 154 additions & 5 deletions _i18n/es/campaigns/creating-a-campaign.md

Large diffs are not rendered by default.

53 changes: 53 additions & 0 deletions _includes/editorial/en/custom-bcc29206ce14b1ed.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{% raw %}
<!-- BEGIN app/components/editorial/figure_component.html.erb
--><figure class="ht-editorial-visual ht-editorial-visual--messages" data-editorial-visual="custom-bcc29206ce14b1ed" aria-label="An SMS campaign introducing a new collection">
<div class="ht-editorial-visual__stage" data-editorial-channel="sms">
<div class="ht-editorial-visual__panels">
<section class="ht-editorial-visual__panel" aria-label="New collection" aria-description="An example of a one-time campaign for an audience that accepts SMS." data-editorial-channel="sms">
<!-- BEGIN app/components/marketing/phone_component.html.erb
--><div aria-label="Luma · SMS" class="ht-phone ht-phone--editorial ht-phone--sms" role="group">
<div class="ht-phone__inside">

<!-- BEGIN app/components/editorial/channel_preview_component.html.erb
--> <div class="ht-editorial-channel ht-editorial-channel--sms ht-editorial-channel--theme-lavender">
<header class="ht-editorial-channel__header ht-editorial-channel__header--centered">
<span class="ht-editorial-channel__back" aria-hidden="true"><svg class="ht-editorial-channel__icon ht-editorial-channel__icon--back" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="m15 18-6-6 6-6" /></svg></span>
<div class="ht-editorial-channel__contact">
<span class="ht-editorial-channel__avatar" aria-hidden="true">L</span>
<strong class="ht-editorial-channel__contact-name">Luma</strong>
</div>
</header>
<div class="ht-editorial-channel__conversation ht-editorial-visual__messages" tabindex="0">
<div class="ht-editorial-channel__date">Today 10:00</div>
<span class="ht-editorial-channel__message-type">Text Message · SMS</span>
<!-- BEGIN app/components/editorial/message_content_component.html.erb
--> <!-- BEGIN app/components/marketing/message_bubble_component.html.erb
--> <div class="ht-editorial-visual__message ht-editorial-visual__message--business">
<span class="ht-editorial-visual__message-text">Luma: explore the new collection at example.com/new. Reply STOP to opt out</span>
<time class="ht-editorial-visual__message-time">10:00</time>
</div>
<!-- END app/components/marketing/message_bubble_component.html.erb -->
<!-- END app/components/editorial/message_content_component.html.erb -->
</div>
<div class="ht-editorial-channel__composer" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" class="ht-editorial-channel__icon ht-editorial-channel__icon--plus">
<g fill="none">
<path d="M5 12h14M12 5v14" stroke="currentColor" stroke-linecap="round"></path>
</g>
</svg>
<span class="ht-editorial-channel__input"><span class="ht-editorial-channel__placeholder">Text Message · SMS</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" class="ht-editorial-channel__icon ht-editorial-channel__icon--microphone">
<g fill="none">
<rect x="8.217" y="2.75" width="7.5" height="12.5" rx="3.75" stroke="currentColor"></rect>
<path d="M11.967 18.5v3m-2 1h4" stroke="currentColor" stroke-linecap="round"></path>
<path d="M5.469 11.024l-.006.091a6.524 6.524 0 1 0 13.015-.052" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path>
</g>
</svg></span>
</div>
</div>
<!-- END app/components/editorial/channel_preview_component.html.erb -->

</div>
</div><!-- END app/components/marketing/phone_component.html.erb --></section> </div>
</div> <figcaption class="ht-editorial-visual__caption">Illustrative SMS from the fictional store Luma. It introduces a new collection with a demonstration link and opt-out text. The link is inert and no message is sent.</figcaption>
</figure><!-- END app/components/editorial/figure_component.html.erb -->
{% endraw %}
53 changes: 53 additions & 0 deletions _includes/editorial/es/custom-e5d0ebc899b77888.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{% raw %}
<!-- BEGIN app/components/editorial/figure_component.html.erb
--><figure class="ht-editorial-visual ht-editorial-visual--messages" data-editorial-visual="custom-e5d0ebc899b77888" aria-label="Una campaña SMS para presentar una nueva colección">
<div class="ht-editorial-visual__stage" data-editorial-channel="sms">
<div class="ht-editorial-visual__panels">
<section class="ht-editorial-visual__panel" aria-label="Nueva colección" aria-description="Ejemplo de una campaña puntual dirigida a una audiencia que acepta SMS." data-editorial-channel="sms">
<!-- BEGIN app/components/marketing/phone_component.html.erb
--><div aria-label="Luma · SMS" class="ht-phone ht-phone--editorial ht-phone--sms" role="group">
<div class="ht-phone__inside">

<!-- BEGIN app/components/editorial/channel_preview_component.html.erb
--> <div class="ht-editorial-channel ht-editorial-channel--sms ht-editorial-channel--theme-lavender">
<header class="ht-editorial-channel__header ht-editorial-channel__header--centered">
<span class="ht-editorial-channel__back" aria-hidden="true"><svg class="ht-editorial-channel__icon ht-editorial-channel__icon--back" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="m15 18-6-6 6-6" /></svg></span>
<div class="ht-editorial-channel__contact">
<span class="ht-editorial-channel__avatar" aria-hidden="true">L</span>
<strong class="ht-editorial-channel__contact-name">Luma</strong>
</div>
</header>
<div class="ht-editorial-channel__conversation ht-editorial-visual__messages" tabindex="0">
<div class="ht-editorial-channel__date">Hoy 10:00</div>
<span class="ht-editorial-channel__message-type">Mensaje de texto · SMS</span>
<!-- BEGIN app/components/editorial/message_content_component.html.erb
--> <!-- BEGIN app/components/marketing/message_bubble_component.html.erb
--> <div class="ht-editorial-visual__message ht-editorial-visual__message--business">
<span class="ht-editorial-visual__message-text">Luma: descubre la nueva colección en example.com/novedades. BAJA para salir</span>
<time class="ht-editorial-visual__message-time">10:00</time>
</div>
<!-- END app/components/marketing/message_bubble_component.html.erb -->
<!-- END app/components/editorial/message_content_component.html.erb -->
</div>
<div class="ht-editorial-channel__composer" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" class="ht-editorial-channel__icon ht-editorial-channel__icon--plus">
<g fill="none">
<path d="M5 12h14M12 5v14" stroke="currentColor" stroke-linecap="round"></path>
</g>
</svg>
<span class="ht-editorial-channel__input"><span class="ht-editorial-channel__placeholder">Mensaje de texto · SMS</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" class="ht-editorial-channel__icon ht-editorial-channel__icon--microphone">
<g fill="none">
<rect x="8.217" y="2.75" width="7.5" height="12.5" rx="3.75" stroke="currentColor"></rect>
<path d="M11.967 18.5v3m-2 1h4" stroke="currentColor" stroke-linecap="round"></path>
<path d="M5.469 11.024l-.006.091a6.524 6.524 0 1 0 13.015-.052" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path>
</g>
</svg></span>
</div>
</div>
<!-- END app/components/editorial/channel_preview_component.html.erb -->

</div>
</div><!-- END app/components/marketing/phone_component.html.erb --></section> </div>
</div> <figcaption class="ht-editorial-visual__caption">SMS ilustrativo de la tienda ficticia Luma. Presenta una nueva colección con un enlace de demostración y la salida BAJA para salir. El enlace es inerte y no se envía ningún mensaje.</figcaption>
</figure><!-- END app/components/editorial/figure_component.html.erb -->
{% endraw %}
31 changes: 31 additions & 0 deletions docs/editorial-work/campaign-creation-completion-20261026.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Campaign creation completion — 26 October 2026

Status: both localized guides are locally verified at commit `24fa15de997761230c2e483595dc805509d505ac`. Production build, source integrity, HTTP and complete visual review pass. The inventory now records Campaign as `local_verified`, leaving 32 unfinished article pairs. Publication has not been performed by this worktree.

## Changes

The Spanish and English campaign creation guides now contain eleven static screenshot figures each, backed by 36 current native 4× Display P3 PNGs. They show channel selection, included and excluded audiences, recipient limits, composition tools, coupons, test destination, delivery date and time, confirmation, and reply assignment. Each guide also starts with an editable native SMS example for the fictional Luma store.

Current copy explains eligibility-based audience counts, the count before a limit versus the confirmation count after it, current review thresholds, and reply assignment to a person or team. Six additional sentences name the exact link, tag and test controls so the steps remain clear on small screens. Fourteen headings and fourteen ordered Liquid links are preserved per language. The route stub remains byte-identical, including `/es/crear-una-campaña.html`.

## Source and selection

This isolated worktree starts from Help `7cc05346c0234fc76ab94db0e914b47313d5edad`, with editorial rules pinned at `d0ee357e45d2d14ae605081fc8fe20763b1bb4ba`. Screenshots and native examples are tied to app `ef8a200330bc7be2ac07ea1d1541ae870e4bbdc7`. The final relevant-source check found subsequent commits limited to unrelated administration files; it does not relabel these captures as a later app revision.

All screenshots use fictional isolated data. SMS matches the real disabled WhatsApp state. The Spanish draft includes `BAJA para salir`; the current English Club draft contains its name tag and tracked link without an opt-out footer. The separate early Luma example is explicitly illustrative and has its own editable opt-out text; it does not assert an automatic application footer. Campaigns remained drafts; no test or delivery request was sent, and the runtime closure records unchanged retained jobs and zero workers or processed jobs.

Seven figures per language have distinct desktop/mobile sources. Link, tags, test destination and audience limit use complete desktop closeups in both Help layouts. Native mobile limitations, rejected candidates and preview omissions are documented in `source-selection-decisions.json`. The complete phone preview is omitted because the early native example teaches the message result and the composer/test controls teach the workflow. Original raw bytes, rejected references, older worktrees and previous drafts remain preserved. Historical screenshots were not presented as current UI.

## Native example import

The real exports generated Spanish `custom-e5d0ebc899b77888` and English `custom-bcc29206ce14b1ed`. Both 47-file export manifests were verified. Only their two custom includes and locale data were imported, without editing generated bytes. Existing common CSS, JS, images and includes remain intact. The new exported CSS would reintroduce image links and unrelated table styles; its SMS rules match the current Help rules. The selective import preserves the approved static lavender stage and white inset. Native generated whitespace is retained.

## Validation

The production build and security-header checks pass. All 36 source PNGs and their 72 built copies are byte-identical; native profiles, geometry and four signed module copies pass. Local HTTP checks verified 80 exact resources, 28 article links and eight excluded authoring paths.

Independent reviewers inspected both complete guides at 1440, 580 and 390 CSS pixels: 91 page segments and 66 individual figure details, 157 native review PNGs in total. Every view passes with no findings, no horizontal overflow, no raster enlargement and the expected responsive source selection. Shared mobile controls are compact and complete, with exact instructions in adjacent HTML prose. EN 580 ends at 16600 against documentHeight 16601, within the existing one-CSS-pixel coverage tolerance; the footer and bottom margin are visibly complete. No capture or coverage value was altered.

The native examples render early, remain inert, preserve localized text and have no overflow. Authoring records remain excluded from the public site. Owned application capture and Help review services are closed; no permissions, automation, prospecting environment or protected worktree was modified.

The capture directory contains immutable source manifests, pixel verdicts, copy and export reviews, runtime closure, build receipts, six view packets and complete visual evidence. The immutable evidence is committed at `24fa15de997761230c2e483595dc805509d505ac`; `local-verification-committed.json` records that actual commit and the subsequent inventory closure. Only the Campaign row changed: 121 pairs are locally verified and 32 remain unfinished (28 pending, three in progress and one awaiting visual completion); one separate pair is out of scope. All 153 unrelated rows remain exact. Remote publication and deployed-byte verification belong to the authorized publication owner.
Loading
Loading