[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fintegrations\u002Fwebsite-content-lifecycle":3},{"id":4,"title":5,"body":6,"description":683,"extension":684,"meta":685,"navigation":686,"order":687,"path":688,"seo":689,"stem":690,"summary":691,"__hash__":692},"docs\u002Fdocs\u002Fintegrations\u002Fwebsite-content-lifecycle.md","Website content lifecycle",{"type":7,"value":8,"toc":670},"minimark",[9,13,17,20,55,106,111,114,174,177,181,184,261,270,274,277,329,333,336,384,388,391,455,458,462,465,517,520,524,527,576,580,583,653,660,664,667],[10,11,5],"h1",{"id":12},"website-content-lifecycle",[14,15,16],"p",{},"42flows does not just generate an article and leave you to paste it somewhere. The website integration is meant to carry the work from idea to published URL.",[14,18,19],{},"The lifecycle has five steps:",[21,22,23,31,37,43,49],"ol",{},[24,25,26,30],"li",{},[27,28,29],"strong",{},"Connect the website."," Give 42flows the right access for your stack.",[24,32,33,36],{},[27,34,35],{},"Read enough context."," 42flows checks what the site can accept and where content should go.",[24,38,39,42],{},[27,40,41],{},"Publish the content."," The article is sent to WordPress, Shopify, GitHub, Nuxt, or your webhook.",[24,44,45,48],{},[27,46,47],{},"Verify the page."," 42flows checks whether the public URL is reachable after publishing.",[24,50,51,54],{},[27,52,53],{},"Improve or redeliver."," If the platform supports updates, 42flows can send the work again or improve an existing page.",[56,57,59,60],"div",{"style":58},"margin: 28px 0; border: 1px solid #ddd6c7; background: #ffffff; color: #1f2937; padding: 20px;","\n  ",[56,61,63,64,63,74,63,82,63,90,63,98,59],{"style":62},"display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));","\n    ",[56,65,67,70,73],{"style":66},"border-bottom: 3px solid #0f172a; padding: 12px; background: #faf8f2; color: #1f2937;",[27,68,69],{},"1. Connect",[71,72],"br",{},"WordPress, Shopify, GitHub, Nuxt, or webhook access",[56,75,76,79,81],{"style":66},[27,77,78],{},"2. Check fit",[71,80],{},"Routes, blog target, repo files, or endpoint health",[56,83,84,87,89],{"style":66},[27,85,86],{},"3. Publish",[71,88],{},"The content lands in the chosen website path",[56,91,92,95,97],{"style":66},[27,93,94],{},"4. Verify",[71,96],{},"The public URL is checked after publish",[56,99,100,103,105],{"style":66},[27,101,102],{},"5. Improve",[71,104],{},"Redeliver, update, or optimize where supported",[107,108,110],"h2",{"id":109},"what-you-can-see","What you can see",[14,112,113],{},"42flows tracks the work in customer-visible terms:",[115,116,117,130],"table",{},[118,119,120],"thead",{},[121,122,123,127],"tr",{},[124,125,126],"th",{},"Concept",[124,128,129],{},"What it means",[131,132,133,142,150,158,166],"tbody",{},[121,134,135,139],{},[136,137,138],"td",{},"Site connection",[136,140,141],{},"The website, store, repo, receiver, or webhook you connected.",[121,143,144,147],{},[136,145,146],{},"Content plan",[136,148,149],{},"The topics and pages 42flows plans for the business.",[121,151,152,155],{},[136,153,154],{},"Content request",[136,156,157],{},"One article or page 42flows is preparing to publish.",[121,159,160,163],{},[136,161,162],{},"Published page",[136,164,165],{},"The final URL, delivery result, and verification status.",[121,167,168,171],{},[136,169,170],{},"Activity history",[136,172,173],{},"A plain trail of what happened: connected, tested, published, verified, or needs attention.",[14,175,176],{},"These are the concepts that matter to a customer. The internal database names do not matter and are not part of the public contract.",[107,178,180],{"id":179},"connect","Connect",[14,182,183],{},"Each website path has a different setup step.",[115,185,186,199],{},[118,187,188],{},[121,189,190,193,196],{},[124,191,192],{},"Website path",[124,194,195],{},"What you do",[124,197,198],{},"What 42flows checks",[131,200,201,212,223,234,245],{},[121,202,203,206,209],{},[136,204,205],{},"WordPress",[136,207,208],{},"Create or approve WordPress publishing access.",[136,210,211],{},"REST access, post creation, SEO plugin compatibility, and companion plugin support.",[121,213,214,217,220],{},[136,215,216],{},"Shopify",[136,218,219],{},"Connect the Shopify store.",[136,221,222],{},"Store access and blog publishing availability.",[121,224,225,228,231],{},[136,226,227],{},"Nuxt Content via GitHub",[136,229,230],{},"Install the GitHub App and choose the repo\u002Fbranch.",[136,232,233],{},"Repo access, content folder, package setup, and route fit.",[121,235,236,239,242],{},[136,237,238],{},"Nuxt direct receiver",[136,240,241],{},"Install the Nuxt receiver package and set the receiver token.",[136,243,244],{},"Receiver health endpoint.",[121,246,247,250,253],{},[136,248,249],{},"Webhook",[136,251,252],{},"Add one HTTPS endpoint and set the bearer token.",[136,254,255,256,260],{},"Signed ",[257,258,259],"code",{},"ping"," request.",[14,262,263,264,269],{},"If the business does not have a website, use ",[265,266,268],"a",{"href":267},"\u002Fdocs\u002Flocal-ranking","Local ranking"," instead. That path starts from Google Business Profile and chat-based publishing support, not website publishing.",[107,271,273],{"id":272},"read","Read",[14,275,276],{},"42flows reads only what the integration needs.",[115,278,279,288],{},[118,280,281],{},[121,282,283,285],{},[124,284,192],{},[124,286,287],{},"What may be read",[131,289,290,297,304,312,319],{},[121,291,292,294],{},[136,293,205],{},[136,295,296],{},"Posts, pages, SEO plugin state, and page structure needed for publishing or optimization.",[121,298,299,301],{},[136,300,216],{},[136,302,303],{},"Store and blog availability for publishing articles.",[121,305,306,309],{},[136,307,308],{},"GitHub\u002FNuxt Content",[136,310,311],{},"Repo files that explain how content is stored and routed.",[121,313,314,316],{},[136,315,238],{},[136,317,318],{},"Receiver health and public page metadata.",[121,320,321,323],{},[136,322,249],{},[136,324,325,326,328],{},"The endpoint's ",[257,327,259],{}," response. Your app owns its own content storage.",[107,330,332],{"id":331},"publish","Publish",[14,334,335],{},"When a new article is ready, 42flows sends it through the chosen path:",[115,337,338,347],{},[118,339,340],{},[121,341,342,344],{},[124,343,192],{},[124,345,346],{},"What happens",[131,348,349,356,363,370,377],{},[121,350,351,353],{},[136,352,205],{},[136,354,355],{},"A post is created or updated by slug, with title, body, SEO fields, schema, category, and optional image.",[121,357,358,360],{},[136,359,216],{},[136,361,362],{},"A Shopify blog article is created with title, body, tags, SEO fields, and optional image.",[121,364,365,367],{},[136,366,308],{},[136,368,369],{},"A markdown content file, and optional assets, are committed to the selected repo branch.",[121,371,372,374],{},[136,373,238],{},[136,375,376],{},"The receiver endpoint accepts the article content and metadata.",[121,378,379,381],{},[136,380,249],{},[136,382,383],{},"Your endpoint receives markdown, HTML, metadata, schema data, and a slug.",[107,385,387],{"id":386},"public-url-rules","Public URL rules",[14,389,390],{},"GitHub and Nuxt Content sites need a predictable path from file to public URL. A common pattern is:",[115,392,393,403],{},[118,394,395],{},[121,396,397,400],{},[124,398,399],{},"Page type",[124,401,402],{},"Example URL",[131,404,405,415,425,435,445],{},[121,406,407,410],{},[136,408,409],{},"Blog article",[136,411,412],{},[257,413,414],{},"\u002Fblog\u002Fmy-article-slug",[121,416,417,420],{},[136,418,419],{},"Problem page",[136,421,422],{},[257,423,424],{},"\u002Fproblem\u002Fmy-article-slug",[121,426,427,430],{},[136,428,429],{},"Comparison page",[136,431,432],{},[257,433,434],{},"\u002Fcompare\u002Fmy-article-slug",[121,436,437,440],{},[136,438,439],{},"Report page",[136,441,442],{},[257,443,444],{},"\u002Freports\u002Fmy-article-slug",[121,446,447,450],{},[136,448,449],{},"Picks page",[136,451,452],{},[257,453,454],{},"\u002Fpicks\u002Fmy-article-slug",[14,456,457],{},"If your site already uses a different route shape, 42flows should follow that instead of forcing a new one.",[107,459,461],{"id":460},"redelivery-and-updates","Redelivery and updates",[14,463,464],{},"Sometimes the same content needs to be sent again. The safest update rule is the slug or file path.",[115,466,467,476],{},[118,468,469],{},[121,470,471,473],{},[124,472,192],{},[124,474,475],{},"Redelivery guidance",[131,477,478,485,492,499,506],{},[121,479,480,482],{},[136,481,205],{},[136,483,484],{},"The same slug updates the existing post instead of creating a duplicate.",[121,486,487,489],{},[136,488,216],{},[136,490,491],{},"Use a clear article slug and check the Shopify blog before re-sending the same topic.",[121,493,494,496],{},[136,495,308],{},[136,497,498],{},"The same file path can be updated in a new Git commit.",[121,500,501,503],{},[136,502,238],{},[136,504,505],{},"The receiver should treat the slug\u002Fcontent path as the unique key.",[121,507,508,510],{},[136,509,249],{},[136,511,512,513,516],{},"Your handler should upsert by ",[257,514,515],{},"article.slug"," so a re-send is safe.",[14,518,519],{},"For custom websites, this is the most important rule: make your endpoint idempotent by slug.",[107,521,523],{"id":522},"improving-existing-pages","Improving existing pages",[14,525,526],{},"Publishing a new article is different from improving a page that already exists.",[115,528,529,538],{},[118,530,531],{},[121,532,533,535],{},[124,534,192],{},[124,536,537],{},"Existing-page improvement",[131,539,540,547,555,562,569],{},[121,541,542,544],{},[136,543,205],{},[136,545,546],{},"Strongest support. 42flows can read a page, propose targeted edits, apply approved changes, and restore a WordPress snapshot if needed.",[121,548,549,552],{},[136,550,551],{},"GitHub\u002FNuxt markdown",[136,553,554],{},"Good fit when the page is stored as markdown in the repo. Changes are normal Git commits.",[121,556,557,559],{},[136,558,216],{},[136,560,561],{},"Best treated as blog publishing unless a custom optimization workflow is agreed.",[121,563,564,566],{},[136,565,238],{},[136,567,568],{},"Good for publishing new content; existing-page edits depend on the receiver and site structure.",[121,570,571,573],{},[136,572,249],{},[136,574,575],{},"Your app owns existing-page edits unless you add a separate edit API.",[107,577,579],{"id":578},"verification","Verification",[14,581,582],{},"After publishing, 42flows can check the public URL. The result is meant to be understandable:",[115,584,585,595],{},[118,586,587],{},[121,588,589,592],{},[124,590,591],{},"Result",[124,593,594],{},"What it usually means",[131,596,597,605,613,621,629,637,645],{},[121,598,599,602],{},[136,600,601],{},"Verified",[136,603,604],{},"The page is reachable and shows the expected 42flows content marker.",[121,606,607,610],{},[136,608,609],{},"Not found",[136,611,612],{},"The page is not live yet, the route is wrong, or the deployment has not finished.",[121,614,615,618],{},[136,616,617],{},"Login or blocking issue",[136,619,620],{},"The page is behind auth or blocked from public crawlers.",[121,622,623,626],{},[136,624,625],{},"Build or render issue",[136,627,628],{},"The deployed page shows a build\u002Frender problem.",[121,630,631,634],{},[136,632,633],{},"Wrong page at that URL",[136,635,636],{},"The URL already belongs to a different page.",[121,638,639,642],{},[136,640,641],{},"Stale cache",[136,643,644],{},"The old version is still being served.",[121,646,647,650],{},[136,648,649],{},"Could not reach URL",[136,651,652],{},"The verifier could not connect to the page.",[14,654,655,656,659],{},"Verification is strongest when the integration returns a public URL. For webhook sites, return the final ",[257,657,658],{},"postUrl"," whenever possible.",[107,661,663],{"id":662},"removing-or-undoing-content","Removing or undoing content",[14,665,666],{},"42flows does not automatically delete published website content. If a page should come down, treat it as a deliberate support\u002Fcustomer decision.",[14,668,669],{},"For WordPress Page Optimizer changes, 42flows can restore the saved WordPress snapshot. For Git-backed sites, undoing a change should follow the normal Git and deploy workflow for that repo.",{"title":671,"searchDepth":672,"depth":672,"links":673},"",2,[674,675,676,677,678,679,680,681,682],{"id":109,"depth":672,"text":110},{"id":179,"depth":672,"text":180},{"id":272,"depth":672,"text":273},{"id":331,"depth":672,"text":332},{"id":386,"depth":672,"text":387},{"id":460,"depth":672,"text":461},{"id":522,"depth":672,"text":523},{"id":578,"depth":672,"text":579},{"id":662,"depth":672,"text":663},"What happens when 42flows connects to a website, publishes content, verifies the public URL, and handles updates.","md",{},true,21,"\u002Fdocs\u002Fintegrations\u002Fwebsite-content-lifecycle",{"title":5,"description":683},"docs\u002Fintegrations\u002Fwebsite-content-lifecycle","The customer-visible website lifecycle from connection through publishing, verification, redelivery, and page improvements.","4CNumX43isi5j9UY_GMxQfi68A8GFVsMYa86vjzOgOk"]