Social Campaign Post Timer

House-keeping page for the manual posting companion. Everything happens offline, through one static board that enforces conservative timers (X baseline) and lets you import/export CSV files.

Open the timer board ? Share the tool URL above for day-to-day use.

3-step workflow

1 Import CSV

Each file = one campaign. Load it, confirm the rows, and we persist the session in localStorage.

2 Copy under guard

Use the X / YouTube / Facebook buttons. Each click copies the text and consumes the quota immediately.

3 Export & archive

When a campaign is done, export the CSV to keep your timestamps, then reset.

CSV contract

Columns are fixed. Keep the header exactly as shown.

ColumnPurpose
idUnique reference (string). Used to enforce same-text limits.
bloc_groupeLogical family for anti-spam group rules.
texteFull body. Can contain placeholders like {{cta}}.
lienOptional tracking link. Leave blank if none.
x_ok, youtube_ok, facebook_okUse 1 for allowed, 0 otherwise.
abonnement_requisfree or premium. Premium rows are locked unless the toggle is set to premium.
dernier_envoi_x etc.Unix ms timestamps, optional. Helpful when exporting/importing to keep history.

Sample block:

id,bloc_groupe,texte,lien,x_ok,youtube_ok,facebook_ok,abonnement_requis,dernier_envoi_x,dernier_envoi_youtube,dernier_envoi_facebook
001,Launch Pulse,"Publier le teaser vid�o 'Resilience Road' et mentionner @ForumDesMaires",https://mayors.example/road,1,1,1,free,,,

Envelope we enforce

Operational notes

Offline first.

No network calls, no cookies. Everything is stored locally; export manually for backups.

Session safety.

If you reload the page, the board reconstructs timers from localStorage timestamps and continues the countdowns.

Sharing.

Send teammates directly to social-campaign-posts-timer.php. Keep this index bookmarked for onboarding.

Edits.

Need another feature? Update the CSV + reload, or fork the JS inside the tool (constants are at the top).