{"id":643,"date":"2026-11-07T10:49:35","date_gmt":"2026-11-07T15:49:35","guid":{"rendered":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/campaign-builder\/"},"modified":"2026-11-07T10:49:35","modified_gmt":"2026-11-07T15:49:35","slug":"campaign-builder","status":"publish","type":"page","link":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/campaign-builder\/","title":{"rendered":"Campaign Flow Builder"},"content":{"rendered":"\n<!--\n  ============================================================================\n  PAGE: Campaign Flow Builder\n  SLUG: campaign-builder\n  URL:  https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/campaign-builder\n  ============================================================================\n-->\n<style>\n.kb-page{\n  --coral:#EE6055; --mint:#3DE8B7; --ink:#1A1A1A; --paper:#FAFAF7; --pen:#5F5E5A;\n  --yellow:#F8E170; --blue:#365eff; --line:#ececec;\n  font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\n  color:var(--ink); line-height:1.62; max-width:840px; margin:0 auto; padding:0 20px 72px; box-sizing:border-box;\n}\n.kb-page *{box-sizing:border-box;}\n.kb-page a{color:var(--blue); text-decoration:none;}\n.kb-page a:hover{text-decoration:underline;}\n.kb-page .kb-crumb{font-size:13px; color:var(--pen); padding:26px 0 0; display:flex; gap:8px; flex-wrap:wrap; align-items:center;}\n.kb-page .kb-crumb a{color:var(--pen);}\n.kb-page .kb-crumb a:hover{color:var(--coral);}\n.kb-page .kb-crumb span{opacity:.5;}\n.kb-page .kb-head{padding:18px 0 6px;}\n.kb-page .kb-eyebrow{display:inline-block; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;\n  color:var(--coral); background:rgba(238,96,85,.1); padding:5px 12px; border-radius:999px; margin-bottom:14px;}\n.kb-page h1{font-size:clamp(26px,4vw,36px); line-height:1.15; margin:0 0 12px; font-weight:800; letter-spacing:-.02em;}\n.kb-page .kb-lead{font-size:17px; color:var(--pen); margin:0 0 8px;}\n.kb-page .kb-acc{margin-top:26px; border-top:1px solid var(--line);}\n.kb-page .kb-item{border-bottom:1px solid var(--line);}\n.kb-page .kb-q{width:100%; text-align:left; background:none; border:0; cursor:pointer; font:inherit; color:var(--ink);\n  display:flex; gap:14px; align-items:flex-start; padding:20px 4px; font-size:17px; font-weight:650;}\n.kb-page .kb-q:hover{color:var(--coral);}\n.kb-page .kb-q .kb-qi{flex:none; width:22px; height:22px; margin-top:1px; transition:transform .2s; color:var(--coral);}\n.kb-page .kb-item.open .kb-q .kb-qi{transform:rotate(45deg);}\n.kb-page .kb-q .kb-qt{flex:1;}\n.kb-page .kb-a{max-height:0; overflow:hidden; transition:max-height .3s ease;}\n.kb-page .kb-a-inner{padding:0 4px 22px 36px; font-size:15.5px; color:#33322f;}\n.kb-page .kb-a-inner p{margin:0 0 13px;}\n.kb-page .kb-a-inner ul,.kb-page .kb-a-inner ol{margin:0 0 13px; padding-left:20px;}\n.kb-page .kb-a-inner li{margin:0 0 7px;}\n.kb-page .kb-a-inner strong{color:var(--ink);}\n.kb-page .kb-a-inner h3{font-size:16px; font-weight:700; margin:20px 0 10px; color:var(--ink);}\n.kb-page .kb-a-inner code{background:var(--paper); padding:2px 6px; border-radius:4px; font-size:14px; font-family:\"SF Mono\",\"Menlo\",Consolas,monospace;}\n.kb-page .kb-a-inner blockquote{margin:0 0 13px; padding:12px 16px; background:var(--paper); border-left:3px solid var(--line); border-radius:0 8px 8px 0; color:var(--pen);}\n.kb-page .kb-a-inner .kb-tip{background:var(--paper); border-left:3px solid var(--mint); border-radius:8px; padding:12px 16px; margin:0 0 13px; font-size:14.5px;}\n.kb-page .kb-a-inner .kb-note{background:#fff8e6; border-left:3px solid var(--yellow); border-radius:8px; padding:12px 16px; margin:0 0 13px; font-size:14.5px;}\n.kb-page .kb-a-inner .kb-table-wrap{overflow-x:auto; margin:0 0 13px;}\n.kb-page .kb-a-inner .kb-table{width:100%; border-collapse:collapse; font-size:14px; border:1px solid var(--line); border-radius:8px; overflow:hidden;}\n.kb-page .kb-a-inner .kb-table th{background:var(--paper); font-weight:700; text-align:left; padding:10px 12px; border-bottom:1px solid var(--line);}\n.kb-page .kb-a-inner .kb-table td{padding:9px 12px; border-bottom:1px solid var(--line);}\n.kb-page .kb-a-inner .kb-table tr:last-child td{border-bottom:none;}\n.kb-page .kb-mockup{margin:22px auto 26px; max-width:640px; padding:22px; background:#f4f5f7; border-radius:16px; border:1px solid var(--line);}\n.kb-page .kb-mockup svg{width:100%; height:auto; display:block; border-radius:10px; box-shadow:0 4px 16px rgba(0,0,0,.08);}\n.kb-page .kb-mockup-caption{margin:12px 0 0; font-size:13px; color:var(--pen); text-align:center; font-style:italic;}\n.kb-page .kb-related{margin-top:40px; background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:22px 24px;}\n.kb-page .kb-related h2{font-size:15px; text-transform:uppercase; letter-spacing:.08em; color:var(--pen); margin:0 0 14px;}\n.kb-page .kb-related ul{list-style:none; margin:0; padding:0; display:grid; gap:10px;}\n.kb-page .kb-related a{display:flex; gap:8px; align-items:center; font-weight:600; font-size:15px;}\n.kb-page .kb-cta{margin-top:34px; background:var(--ink); color:#fff; border-radius:20px; padding:32px 28px; text-align:center;}\n.kb-page .kb-cta h3{margin:0 0 8px; font-size:21px; font-weight:800;}\n.kb-page .kb-cta p{margin:0 0 20px; color:#cfcfcf; font-size:15px;}\n.kb-page .kb-cta-btns{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}\n.kb-page .kb-btn{display:inline-flex; align-items:center; gap:8px; padding:13px 24px; border-radius:999px; font-weight:700; font-size:14px;}\n.kb-page .kb-btn svg{width:18px;height:18px;}\n.kb-page .kb-btn-coral{background:var(--coral); color:#fff;}\n.kb-page .kb-btn-coral:hover{background:#e2483b; text-decoration:none;}\n.kb-page .kb-btn-ghost{background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.3);}\n.kb-page .kb-btn-ghost:hover{border-color:#fff; text-decoration:none;}\n.kb-page .kb-back{display:inline-flex; align-items:center; gap:7px; margin-top:30px; font-weight:600; font-size:14px; color:var(--pen);}\n.kb-page .kb-back:hover{color:var(--coral);}\n.kb-page .kb-contact{margin:34px 0 0; min-height:790px;}\n\n.kb-page .kb-fig{margin:14px 0 18px;}\n.kb-page .kb-fig img{display:block; width:100%; height:auto; border:1px solid var(--line); border-radius:12px; box-shadow:0 6px 24px rgba(0,0,0,.08);}\n.kb-page .kb-fig figcaption{font-size:13px; color:var(--pen); margin-top:8px; text-align:center;}\n.kb-page .kb-demo{margin:22px 0 18px;}\n.kb-page .kb-demo-tag{display:inline-block; background:var(--coral); color:#fff; font-weight:700; font-size:12px; letter-spacing:.06em; text-transform:uppercase; padding:4px 10px; border-radius:999px; margin-bottom:8px;}\n.kb-page .kb-notice{margin:18px 0 6px; padding:14px 18px; border-radius:12px; background:#fff8e1; border:1px solid #f3dd8a; font-size:15px;}\n.kb-page .kb-notice strong{color:#1A1A1A;}\n<\/style>\n<section class=\"kb-page\" id=\"campaign-builder\">\n<nav aria-label=\"Breadcrumb\" class=\"kb-crumb\">\n<a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/\">Help Center<\/a><span>\/<\/span>\n    Campaign Flow Builder\n  <\/nav>\n<header class=\"kb-head\">\n<span class=\"kb-eyebrow\">Visual Canvas<\/span>\n<h1>Campaign Flow Builder<\/h1>\n<p class=\"kb-lead\">Every palette block for every platform: Instagram, TikTok, LinkedIn, Facebook, WhatsApp, Telegram, Discord. Plus shared logic blocks and canvas tips.<\/p>\n<\/header>\n<div class=\"kb-mockup\">\n<svg aria-label=\"Campaign flow builder canvas\" role=\"img\" viewbox=\"0 0 640 400\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<rect fill=\"#f7f8fa\" height=\"400\" width=\"640\"><\/rect>\n<!-- Top bar -->\n<rect fill=\"#fff\" height=\"42\" stroke=\"#eee\" width=\"640\" x=\"0\" y=\"0\"><\/rect>\n<text fill=\"#1A1A1A\" font-family=\"system-ui\" font-size=\"13\" font-weight=\"700\" x=\"20\" y=\"27\">Untitled campaign \u00b7 Instagram<\/text>\n<rect fill=\"#fff8e6\" height=\"22\" rx=\"11\" width=\"70\" x=\"480\" y=\"10\"><\/rect>\n<text fill=\"#8a6e00\" font-family=\"system-ui\" font-size=\"10\" font-weight=\"700\" text-anchor=\"middle\" x=\"515\" y=\"24\">Draft<\/text>\n<rect fill=\"#EE6055\" height=\"22\" rx=\"11\" width=\"70\" x=\"558\" y=\"10\"><\/rect>\n<text fill=\"#fff\" font-family=\"system-ui\" font-size=\"10\" font-weight=\"700\" text-anchor=\"middle\" x=\"593\" y=\"24\">Publish \u2192<\/text>\n<!-- Left palette -->\n<rect fill=\"#fafafa\" height=\"358\" stroke=\"#eee\" width=\"160\" x=\"0\" y=\"42\"><\/rect>\n<text fill=\"#666\" font-family=\"system-ui\" font-size=\"10\" letter-spacing=\"1\" x=\"15\" y=\"65\">TRIGGERS<\/text>\n<rect fill=\"#fff\" height=\"30\" rx=\"6\" stroke=\"#eee\" width=\"130\" x=\"15\" y=\"72\"><\/rect>\n<text fill=\"#1A1A1A\" font-family=\"system-ui\" font-size=\"11\" x=\"30\" y=\"91\">\ud83d\udcac Comment on Post<\/text>\n<rect fill=\"#fff\" height=\"30\" rx=\"6\" stroke=\"#eee\" width=\"130\" x=\"15\" y=\"106\"><\/rect>\n<text fill=\"#1A1A1A\" font-family=\"system-ui\" font-size=\"11\" x=\"30\" y=\"125\">\ud83d\udce9 Direct Message<\/text>\n<rect fill=\"#fff\" height=\"30\" rx=\"6\" stroke=\"#eee\" width=\"130\" x=\"15\" y=\"140\"><\/rect>\n<text fill=\"#1A1A1A\" font-family=\"system-ui\" font-size=\"11\" x=\"30\" y=\"159\">\ud83d\udcd6 Story Reply<\/text>\n<text fill=\"#666\" font-family=\"system-ui\" font-size=\"10\" letter-spacing=\"1\" x=\"15\" y=\"188\">ACTIONS<\/text>\n<rect fill=\"#fff\" height=\"30\" rx=\"6\" stroke=\"#eee\" width=\"130\" x=\"15\" y=\"195\"><\/rect>\n<text fill=\"#1A1A1A\" font-family=\"system-ui\" font-size=\"11\" x=\"30\" y=\"214\">\ud83d\udcac Send DM<\/text>\n<rect fill=\"#fff\" height=\"30\" rx=\"6\" stroke=\"#eee\" width=\"130\" x=\"15\" y=\"229\"><\/rect>\n<text fill=\"#1A1A1A\" font-family=\"system-ui\" font-size=\"11\" x=\"30\" y=\"248\">\u2728 AI Response<\/text>\n<rect fill=\"#fff\" height=\"30\" rx=\"6\" stroke=\"#eee\" width=\"130\" x=\"15\" y=\"263\"><\/rect>\n<text fill=\"#1A1A1A\" font-family=\"system-ui\" font-size=\"11\" x=\"30\" y=\"282\">\ud83d\udd17 Product Card<\/text>\n<text fill=\"#666\" font-family=\"system-ui\" font-size=\"10\" letter-spacing=\"1\" x=\"15\" y=\"310\">LOGIC<\/text>\n<rect fill=\"#fff\" height=\"30\" rx=\"6\" stroke=\"#eee\" width=\"130\" x=\"15\" y=\"317\"><\/rect>\n<text fill=\"#1A1A1A\" font-family=\"system-ui\" font-size=\"11\" x=\"30\" y=\"336\">\u23f1 Delay<\/text>\n<rect fill=\"#fff\" height=\"30\" rx=\"6\" stroke=\"#eee\" width=\"130\" x=\"15\" y=\"351\"><\/rect>\n<text fill=\"#1A1A1A\" font-family=\"system-ui\" font-size=\"11\" x=\"30\" y=\"370\">\ud83d\udd00 Condition<\/text>\n<!-- Canvas -->\n<!-- Trigger node -->\n<rect fill=\"#fff\" height=\"70\" rx=\"10\" stroke=\"#EE6055\" stroke-width=\"2\" width=\"150\" x=\"200\" y=\"80\"><\/rect>\n<rect fill=\"#EE6055\" height=\"22\" rx=\"10\" width=\"150\" x=\"200\" y=\"80\"><\/rect>\n<text fill=\"#fff\" font-family=\"system-ui\" font-size=\"10\" font-weight=\"700\" text-anchor=\"middle\" x=\"275\" y=\"96\">TRIGGER<\/text>\n<text fill=\"#1A1A1A\" font-family=\"system-ui\" font-size=\"12\" font-weight=\"700\" text-anchor=\"middle\" x=\"275\" y=\"122\">Comment on Post<\/text>\n<text fill=\"#666\" font-family=\"system-ui\" font-size=\"10\" text-anchor=\"middle\" x=\"275\" y=\"139\">Keyword: &#8220;LINK&#8221;<\/text>\n<!-- Connector -->\n<line stroke=\"#EE6055\" stroke-dasharray=\"4 4\" stroke-width=\"2\" x1=\"275\" x2=\"275\" y1=\"150\" y2=\"180\"><\/line>\n<polygon fill=\"#EE6055\" points=\"275,182 271,175 279,175\"><\/polygon>\n<!-- Action node -->\n<rect fill=\"#fff\" height=\"70\" rx=\"10\" stroke=\"#365eff\" stroke-width=\"2\" width=\"150\" x=\"200\" y=\"188\"><\/rect>\n<rect fill=\"#365eff\" height=\"22\" rx=\"10\" width=\"150\" x=\"200\" y=\"188\"><\/rect>\n<text fill=\"#fff\" font-family=\"system-ui\" font-size=\"10\" font-weight=\"700\" text-anchor=\"middle\" x=\"275\" y=\"204\">SEND DM<\/text>\n<text fill=\"#1A1A1A\" font-family=\"system-ui\" font-size=\"11\" text-anchor=\"middle\" x=\"275\" y=\"230\">&#8220;Hi! Here&#8217;s the link&#8221;<\/text>\n<text fill=\"#666\" font-family=\"system-ui\" font-size=\"10\" text-anchor=\"middle\" x=\"275\" y=\"245\">+ affiliate link<\/text>\n<line stroke=\"#EE6055\" stroke-dasharray=\"4 4\" stroke-width=\"2\" x1=\"275\" x2=\"275\" y1=\"258\" y2=\"288\"><\/line>\n<polygon fill=\"#EE6055\" points=\"275,290 271,283 279,283\"><\/polygon>\n<!-- AI node -->\n<rect fill=\"#fff\" height=\"70\" rx=\"10\" stroke=\"#6b48ff\" stroke-width=\"2\" width=\"150\" x=\"200\" y=\"296\"><\/rect>\n<rect fill=\"#6b48ff\" height=\"22\" rx=\"10\" width=\"150\" x=\"200\" y=\"296\"><\/rect>\n<text fill=\"#fff\" font-family=\"system-ui\" font-size=\"10\" font-weight=\"700\" text-anchor=\"middle\" x=\"275\" y=\"312\">AI RESPONSE<\/text>\n<text fill=\"#1A1A1A\" font-family=\"system-ui\" font-size=\"11\" text-anchor=\"middle\" x=\"275\" y=\"338\">Continue conversation<\/text>\n<text fill=\"#666\" font-family=\"system-ui\" font-size=\"10\" text-anchor=\"middle\" x=\"275\" y=\"353\">Context: FAQ.pdf<\/text>\n<!-- Right panel: Node settings -->\n<rect fill=\"#fff\" height=\"330\" rx=\"10\" stroke=\"#eee\" width=\"180\" x=\"440\" y=\"60\"><\/rect>\n<text fill=\"#1A1A1A\" font-family=\"system-ui\" font-size=\"12\" font-weight=\"700\" x=\"455\" y=\"82\">Node Settings<\/text>\n<text fill=\"#666\" font-family=\"system-ui\" font-size=\"10\" letter-spacing=\"1\" x=\"455\" y=\"105\">TRIGGER KEYWORD<\/text>\n<rect fill=\"#fafafa\" height=\"30\" rx=\"6\" stroke=\"#ddd\" width=\"150\" x=\"455\" y=\"112\"><\/rect>\n<text fill=\"#1A1A1A\" font-family=\"monospace\" font-size=\"11\" x=\"465\" y=\"132\">LINK<\/text>\n<text fill=\"#666\" font-family=\"system-ui\" font-size=\"10\" letter-spacing=\"1\" x=\"455\" y=\"160\">POST SCOPE<\/text>\n<rect fill=\"#fafafa\" height=\"30\" rx=\"6\" stroke=\"#ddd\" width=\"150\" x=\"455\" y=\"167\"><\/rect>\n<text fill=\"#1A1A1A\" font-family=\"system-ui\" font-size=\"11\" x=\"465\" y=\"187\">All Reels \u25be<\/text>\n<text fill=\"#666\" font-family=\"system-ui\" font-size=\"10\" letter-spacing=\"1\" x=\"455\" y=\"215\">MATCH TYPE<\/text>\n<rect fill=\"#EE6055\" height=\"24\" rx=\"12\" width=\"70\" x=\"455\" y=\"222\"><\/rect>\n<text fill=\"#fff\" font-family=\"system-ui\" font-size=\"10\" font-weight=\"700\" text-anchor=\"middle\" x=\"490\" y=\"238\">Contains<\/text>\n<rect fill=\"#fff\" height=\"24\" rx=\"12\" stroke=\"#ddd\" width=\"70\" x=\"530\" y=\"222\"><\/rect>\n<text fill=\"#666\" font-family=\"system-ui\" font-size=\"10\" text-anchor=\"middle\" x=\"565\" y=\"238\">Exact<\/text>\n<text fill=\"#666\" font-family=\"system-ui\" font-size=\"10\" letter-spacing=\"1\" x=\"455\" y=\"272\">RESPONSE DELAY<\/text>\n<rect fill=\"#fafafa\" height=\"30\" rx=\"6\" stroke=\"#ddd\" width=\"150\" x=\"455\" y=\"279\"><\/rect>\n<text fill=\"#1A1A1A\" font-family=\"system-ui\" font-size=\"11\" x=\"465\" y=\"299\">30 seconds \u25be<\/text>\n<\/svg>\n<p class=\"kb-mockup-caption\">Campaign flow builder, palette on left, canvas in center, node settings on right.<\/p>\n<\/div>\n<div class=\"kb-acc\">\n<div class=\"kb-item\">\n<button aria-expanded=\"false\" class=\"kb-q\"><svg class=\"kb-qi\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewbox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"><\/path><\/svg><span class=\"kb-qt\">2.5 Campaign flow builder, every palette block for every platform<\/span><\/button>\n<div class=\"kb-a\"><div class=\"kb-a-inner\"><p>Route: <code>\/campaigns\/{platform}\/new<\/code> or <code>\/campaigns\/{id}\/manage<\/code>.<\/p>\n<p>The builder has three regions: <strong>Palette<\/strong> (left), <strong>Canvas<\/strong> (center), <strong>Live preview<\/strong> (right). Drag blocks from the palette onto the canvas and connect them in sequence.<\/p>\n<h3>Shared Logic blocks (all platforms)<\/h3>\n<div class=\"kb-table-wrap\"><table class=\"kb-table\"><thead><tr><th>Block<\/th><th>Group<\/th><th>Purpose<\/th><\/tr><\/thead><tbody><tr><td><strong>Frequency cap<\/strong><\/td><td>Logic<\/td><td>Limit how many times one fan can enter this flow (per-user limiter)<\/td><\/tr><tr><td><strong>Delay<\/strong><\/td><td>Logic<\/td><td>Wait seconds\/minutes\/hours\/days before the next step<\/td><\/tr><tr><td><strong>Branch (Paths)<\/strong><\/td><td>Logic<\/td><td>Fan picks a path from 2\u20135 button or keyword options, each connected to its own downstream action (<code>wait_for_choice<\/code>)<\/td><\/tr><tr><td><strong>Wait for reply<\/strong><\/td><td>Logic<\/td><td>Pause for one inbound reply (text, phone, or email), then continue a single path, no branching (<code>wait_for_reply<\/code>)<\/td><\/tr><\/tbody><\/table><\/div>\n<div class=\"kb-tip\"><strong>Timing ranges:<\/strong> Delay and Frequency cap both accept 1\u201360 seconds, minutes, or hours, or 1\u201315 days. On any Send step you can also turn on an optional <strong>no-response follow-up<\/strong> message if the fan doesn&#8217;t reply within 60 seconds to 24 hours.<\/div>\n<div class=\"kb-tip\"><strong>Message variants:<\/strong> Any Send DM step can hold more than one message variant. DMpro picks one automatically each time it sends, handy for A\/B testing copy or rotating a welcome message.<\/div>\n### Instagram palette (`\/campaigns\/instagram\/new`)\n<p><strong>Ground Rules<\/strong> &#8211; <strong>Must follow account<\/strong>: DM &amp; story triggers, and mid-flow after a Paths or Wait for reply step on comment-style flows; skips fans who do not follow you (one per campaign)<\/p>\n<p><strong>Triggers<\/strong> &#8211; <strong>Comment on Post<\/strong>: fan comments a keyword on your Post or Reel &#8211; <strong>Direct Message<\/strong>: fan sends a DM matching your keyword &#8211; <strong>Story Reply<\/strong>: fan replies to your Instagram Story &#8211; <strong>Mention in Post<\/strong>: fan @mentions you in a feed post &#8211; <strong>Mention in Reel<\/strong>: fan @mentions you in a Reel &#8211; <strong>Mention in Story<\/strong>: fan @mentions you in their Story<\/p>\n<p><strong>Actions<\/strong> &#8211; <strong>Send DM<\/strong>: outbound direct message &#8211; <strong>Send attachment<\/strong>: image, video, audio, or PDF in DM &#8211; <strong>Send cards<\/strong>: product card carousel (up to 10 cards) &#8211; <strong>Send buttons<\/strong>: text message with up to 3 quick-reply buttons &#8211; <strong>Reply on comment<\/strong>: public reply on the Post\/Reel (a private reply triggered from a comment stays open for 7 days for DM delivery, per Meta rules) &#8211; <strong>Send Instagram post<\/strong>: share a post inside DM (MEDIA_SHARE) &#8211; <strong>Send products<\/strong>: Meta Commerce catalog products (up to 10 per message) &#8211; <strong>Call webhook<\/strong>: POST trigger payload to your URL &#8211; <strong>AI Response<\/strong>: generate reply with AI model<\/p>\n<h3>TikTok palette (<code>\/campaigns\/tiktok\/new<\/code>)<\/h3>\n<p><strong>Triggers<\/strong> &#8211; <strong>Comment on Post<\/strong>: fan comments a keyword on your video (Comment-to-DM supported) &#8211; <strong>Direct Message<\/strong>: fan sends a DM matching your keyword<\/p>\n<p><strong>Actions<\/strong> &#8211; <strong>Send DM<\/strong>: text-only outbound message (no attachments, cards, or buttons) &#8211; <strong>Reply on comment<\/strong>: public reply on the video (up to 3 reply-on-comment steps per flow) &#8211; <strong>Send TikTok post<\/strong>: share one of your TikTok videos in DM &#8211; <strong>Send TikTok Q&amp;A<\/strong>: share a Q&amp;A \/ link card in DM &#8211; <strong>AI Response<\/strong>: generate a reply with AI &#8211; <strong>Call webhook<\/strong>: POST trigger data to URL<\/p>\n<p><strong>Messaging window:<\/strong> TikTok DMs stay open 48 hours after the fan&#8217;s last message, with a maximum of 10 consecutive outbound DMs before they need to reply again.<\/p>\n<p><strong>Not available on TikTok:<\/strong> attachments, cards, buttons, Must follow account.<\/p>\n<h3>LinkedIn palette (<code>\/campaigns\/linkedin\/new<\/code>)<\/h3>\n<p><strong>Triggers<\/strong> &#8211; <strong>Comment on Post<\/strong>: someone comments on your company Page post<\/p>\n<p><strong>Actions<\/strong> &#8211; <strong>Send DM<\/strong>: labeled <strong>Coming soon \u00c2\u00b7 LinkedIn partner API pending<\/strong> (disabled in UI) &#8211; <strong>Reply on comment<\/strong>: public reply on the LinkedIn post &#8211; <strong>Call webhook<\/strong>: POST trigger data to URL<\/p>\n<p><strong>Logic:<\/strong> Delay, Frequency cap (no Must follow account).<\/p>\n<h3>Facebook palette (<code>\/campaigns\/facebook\/new<\/code>)<\/h3>\n<p><strong>Triggers<\/strong> &#8211; <strong>Comment on Page Post<\/strong>: comment on your <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/facebook\/\">Facebook Page<\/a> post &#8211; <strong>Direct Message<\/strong>: Messenger DM matching keyword &#8211; <strong>Postback button<\/strong>: user taps a Messenger postback button &#8211; <strong>Messenger referral<\/strong>: user opens Messenger from m.me link or Click-to-Messenger ad &#8211; <strong>Lead ad form<\/strong>: user submits a Facebook lead generation form<\/p>\n<p><strong>Actions<\/strong> &#8211; <strong>Send DM<\/strong>, <strong>Send attachment<\/strong>, <strong>Send cards<\/strong>, <strong>Send buttons<\/strong>, <strong>Reply on comment<\/strong>, <strong>Send products<\/strong> (Meta Commerce), <strong>Call webhook<\/strong>, <strong>AI Response<\/strong><\/p>\n<p><strong>Messenger windows:<\/strong> Standard 24-hour messaging window applies after user interaction; sponsored message rules apply for ads. Private replies sent from a comment stay open for 7 days.<\/p>\n<h3>WhatsApp palette (<code>\/campaigns\/whatsapp\/new<\/code>)<\/h3>\n<p><strong>Triggers<\/strong> &#8211; <strong>Direct Message<\/strong>: inbound WhatsApp message matching keyword<\/p>\n<p><strong>Actions<\/strong> &#8211; <strong>Send message<\/strong>: text only, up to 4,096 characters &#8211; <strong>Send attachment<\/strong>: one file per step with optional caption &#8211; <strong>Send products<\/strong>: Meta Commerce catalog, up to 10 products &#8211; <strong>Send location<\/strong>: map pin with optional name and address &#8211; <strong>Send contact<\/strong>: contact card with phone number &#8211; <strong>Send sticker<\/strong>: WebP sticker, up to 500 KB &#8211; <strong>AI Response<\/strong>, <strong>Call webhook<\/strong><\/p>\n<p><strong>24-hour service window:<\/strong> Free-form replies allowed within 24 hours of the user&#8217;s last message.<\/p>\n<h3>Telegram palette (<code>\/campaigns\/telegram\/new<\/code>)<\/h3>\n<p><strong>Triggers<\/strong> &#8211; <strong>Start menu button<\/strong>: user taps a trigger button on your bot <code>\/start<\/code> menu &#8211; <strong>Received message<\/strong>: user sends text matching your keyword &#8211; <strong>Referral deep link<\/strong>: user opens bot via <code>\/start <payload><\/payload><\/code> referral URL<\/p>\n<p><strong>Actions<\/strong> &#8211; <strong>Send message<\/strong>, <strong>AI Response<\/strong>, <strong>Call webhook<\/strong>, <strong>Send buttons<\/strong>, <strong>Send sticker<\/strong>, <strong>Send GIF<\/strong>, <strong>Send location<\/strong>, <strong>Send contact card<\/strong>, <strong>Send invoice<\/strong><\/p>\n<p><strong>Logic:<\/strong> Delay, Frequency cap, Branch (button-based paths).<\/p>\n<h3>Discord palette (<code>\/campaigns\/discord\/new<\/code>)<\/h3>\n<p><strong>Triggers<\/strong> &#8211; <strong>Slash start command<\/strong>: fan runs your bot&#8217;s <code>\/start<\/code> slash command (optional referral link on the same trigger) &#8211; <strong>Received message (DM)<\/strong>: fan sends your bot a keyword-matching direct message &#8211; <strong>Received message (channel)<\/strong>: fan posts a keyword-matching message in a server channel (mentioning the bot is configurable) &#8211; <strong>Button or select press<\/strong>: fan taps a button or picks a string-select option &#8211; <strong>Member join<\/strong>: fan joins your Discord server &#8211; <strong>Voice join<\/strong> \/ <strong>Voice leave<\/strong>: fan enters or leaves a voice channel<\/p>\n<p><strong>Actions<\/strong> &#8211; <strong>Send message<\/strong> &#8211; <strong>Send buttons<\/strong> &#8211; <strong>Send select menu<\/strong> &#8211; <strong>Send embed<\/strong> &#8211; <strong>Send modal<\/strong> &#8211; <strong>Send sticker<\/strong> &#8211; <strong>AI Response<\/strong> &#8211; <strong>Call webhook<\/strong><\/p>\n<p><strong>Not available on Discord:<\/strong> Must follow account.<\/p>\n<h3>Avoiding trigger conflicts<\/h3>\n<p>DMpro won&#8217;t let two <strong>active<\/strong> campaigns on the same connected account compete on the same trigger (same trigger type, same keyword, same post). The builder shows a conflict warning before you publish, and again if you invite collaborators whose accounts would create a conflict.<\/p>\n<h3>Collaboration: running a campaign on multiple accounts<\/h3>\n<p>Most campaigns run on a single connected account. For agencies and brand partnerships, you can invite other DMpro users&#8217; connected accounts as <strong>participants<\/strong> so the same flow runs on all of their accounts too.<\/p>\n<ul>\n<li>Add participants from the builder; each invited account gets an invitation to accept or reject.<\/li>\n<li>DMpro checks for trigger conflicts on their account before they can accept.<\/li>\n<li>Choosing <strong>Wait for invites<\/strong> as the start mode keeps the campaign pending until every invited account accepts (participants must be added at creation for this mode).<\/li>\n<li>A campaign can have up to 50 participants.<\/li>\n<li><strong>Send Instagram post<\/strong> and <strong>Send products<\/strong> steps only work on the account that owns the posts or product catalog, so invited accounts can&#8217;t be used for those specific steps.<\/li>\n<\/ul>\n<h3>Call webhook: sending a response back<\/h3>\n<p>Call webhook posts fan and campaign data to a URL you provide, on every platform. Optionally, DMpro can take whatever your webhook responds with and deliver it back to the fan as a DM, a public comment reply, or a private reply, so you can plug in custom logic (like a CRM lookup) and still have DMpro send the result.<\/p>\n<h3>Affiliate &amp; product links<\/h3>\n<p>Attach a commercial link to a Send DM, Send cards, or comment reply step in three ways: paste a <strong>manual URL<\/strong>, pick a row from an uploaded <strong>custom catalog<\/strong> spreadsheet, or choose a live product from a <strong>connected store<\/strong> (Shopify, WooCommerce, and more). Use the <code>{{affiliate_link}}<\/code> placeholder anywhere in your message text and DMpro swaps it for a tracked link at send time. Clicks are logged and show up in your campaign analytics. See <a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/affiliate-ai\/\">Affiliate Tracking &amp; AI Response<\/a> for catalog upload details.<\/p>\n<h3>Canvas tips<\/h3>\n<ol><li>Click a node to open its <strong>inspector panel<\/strong> on the right (below live preview on mobile).<\/li><li>Red outline = validation error, hover for message.<\/li><li>Use <strong>Undo\/Redo<\/strong> in the builder toolbar.<\/li><li><strong>Live preview<\/strong> shows fan-side mock UI with <code>dmpro-watermark-white.svg<\/code> overlay on screenshots.<\/li><\/ol>\n<p>&#8212;<\/p><\/div><\/div>\n<div class=\"kb-item\">\n<button aria-expanded=\"false\" class=\"kb-q\"><svg class=\"kb-qi\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewbox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\"><\/path><\/svg><span class=\"kb-qt\">2.6 What happens after a fan triggers your campaign<\/span><\/button>\n<div class=\"kb-a\"><div class=\"kb-a-inner\"><p>You don&#8217;t need to think about servers or queues, DMpro handles all of that, but here&#8217;s the plain-English version of what happens the moment a fan does the thing your trigger is listening for:<\/p>\n<ol>\n<li><strong>The platform tells DMpro something happened<\/strong>: a comment, a DM, a button tap, someone joining your Discord server, and so on.<\/li>\n<li><strong>DMpro checks the event is really from the platform<\/strong>, not a spoofed request, before doing anything with it.<\/li>\n<li><strong>DMpro reads the event<\/strong>: who sent it, what they said or clicked, which post or channel it happened in.<\/li>\n<li><strong>DMpro finds every active campaign it could match<\/strong> on that account, checking the trigger type, keyword or post scope, whether the sender is a mapped participant account, and your current plan limits.<\/li>\n<li><strong>For each match, DMpro queues the response<\/strong> so nothing gets lost, even during a traffic spike.<\/li>\n<li><strong>DMpro applies your settings<\/strong>: waiting out any action delay you set, checking your per-recipient cooldown hasn&#8217;t been hit, generating an AI reply if that step calls for one, and swapping in your tracked affiliate link if one is configured.<\/li>\n<li><strong>DMpro walks your flow<\/strong> from the trigger through any conditions to the next action step.<\/li>\n<li><strong>The message goes out<\/strong>: DM, comment reply, private reply, or webhook call, whichever your action step defines.<\/li>\n<li><strong>The result is logged<\/strong> as sent, failed, or suppressed, and shows up in your campaign&#8217;s Live Activity feed.<\/li>\n<\/ol>\n<p>All of this usually takes just a few seconds, longer if you&#8217;ve added an intentional action delay.<\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"kb-related\">\n<h2>Related articles<\/h2>\n<ul>\n<li><a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/ai-assistant-mcp\/\">AI Assistant (MCP) \u2192<\/a><\/li>\n<li><a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/#how-to-guides\">How-To Guides \u2192<\/a><\/li>\n<li><a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/campaigns-basics\">Creating Campaigns \u2192<\/a><\/li>\n<li><a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/instagram\">Instagram Automation \u2192<\/a><\/li>\n<li><a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/templates-integrations\">Templates &amp; Integrations \u2192<\/a><\/li>\n<li><a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/affiliate-ai\">Affiliate Tracking &amp; AI Response \u2192<\/a><\/li>\n<li><a href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/troubleshooting\">Troubleshooting \u2192<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"kb-cta\">\n<h3>Still stuck? We&#8217;re happy to help.<\/h3>\n<p>Create your DMpro account, see pricing, or reach out to support directly.<\/p>\n<div class=\"kb-cta-btns\">\n<a class=\"kb-btn kb-btn-coral\" href=\"https:\/\/dmpro.brandid.app\/signin\">\n<svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewbox=\"0 0 24 24\"><path d=\"M5 12h14M12 5l7 7-7 7\"><\/path><\/svg>Create Free Account<\/a>\n<a class=\"kb-btn kb-btn-ghost\" href=\"https:\/\/dmpro.brandid.app\/\">\n<svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewbox=\"0 0 24 24\"><rect height=\"18\" rx=\"2\" width=\"18\" x=\"3\" y=\"4\"><\/rect><path d=\"M3 10h18\"><\/path><\/svg>See Plans<\/a>\n<a class=\"kb-btn kb-btn-ghost\" href=\"https:\/\/brandid.app\/contact-us\/\">\n<svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewbox=\"0 0 24 24\"><path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"><\/path><\/svg>Contact Support<\/a>\n<\/div>\n<\/div>\n<a class=\"kb-back\" href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/\"><svg fill=\"none\" height=\"16\" stroke=\"currentColor\" stroke-width=\"2\" viewbox=\"0 0 24 24\" width=\"16\"><path d=\"m15 18-6-6 6-6\"><\/path><\/svg>Back to Help Center<\/a>\n<div class=\"kb-contact\">\n<script data-accent=\"ff4a1f\" data-height=\"790px\" data-title=\"Contact us\" data-width=\"100%\" defer=\"\" src=\"https:\/\/chatgram-embed.brandid.app\/embed\/v1\/chatgram-embed-loader.js\"><\/script>\n<\/div>\n<\/section>\n<script>\ndocument.querySelectorAll('#campaign-builder .kb-q').forEach(function(q){\n  q.addEventListener('click', function(){\n    var item = q.closest('.kb-item');\n    var a = item.querySelector('.kb-a');\n    var open = item.classList.toggle('open');\n    q.setAttribute('aria-expanded', open ? 'true' : 'false');\n    a.style.maxHeight = open ? a.scrollHeight + 'px' : '0';\n  });\n});\nwindow.addEventListener('resize', function(){\n  document.querySelectorAll('#campaign-builder .kb-item.open .kb-a').forEach(function(a){ a.style.maxHeight = a.scrollHeight + 'px'; });\n});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Help Center\/ Campaign Flow Builder Visual Canvas Campaign Flow Builder Every palette block for every platform: Instagram, TikTok, LinkedIn, Facebook, WhatsApp, Telegram, Discord. Plus shared logic blocks and canvas tips. Untitled campaign \u00b7 Instagram Draft Publish \u2192 TRIGGERS \ud83d\udcac Comment on Post \ud83d\udce9 Direct Message \ud83d\udcd6 Story Reply ACTIONS \ud83d\udcac Send DM \u2728 AI Response [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":585,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-643","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Campaign Flow Builder - DMpro Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/campaign-builder\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Campaign Flow Builder - DMpro Blog\" \/>\n<meta property=\"og:description\" content=\"Help Center\/ Campaign Flow Builder Visual Canvas Campaign Flow Builder Every palette block for every platform: Instagram, TikTok, LinkedIn, Facebook, WhatsApp, Telegram, Discord. Plus shared logic blocks and canvas tips. Untitled campaign \u00b7 Instagram Draft Publish \u2192 TRIGGERS \ud83d\udcac Comment on Post \ud83d\udce9 Direct Message \ud83d\udcd6 Story Reply ACTIONS \ud83d\udcac Send DM \u2728 AI Response [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/campaign-builder\/\" \/>\n<meta property=\"og:site_name\" content=\"DMpro Blog\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/dmpro-knowledge-base\\\/campaign-builder\\\/\",\"url\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/dmpro-knowledge-base\\\/campaign-builder\\\/\",\"name\":\"Campaign Flow Builder - DMpro Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/#website\"},\"datePublished\":\"2026-11-07T15:49:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/dmpro-knowledge-base\\\/campaign-builder\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/dmpro-knowledge-base\\\/campaign-builder\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/dmpro-knowledge-base\\\/campaign-builder\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DMpro Help Center\",\"item\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/dmpro-knowledge-base\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Campaign Flow Builder\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/\",\"name\":\"DMpro Blog\",\"description\":\"DM automation playbooks for Instagram, TikTok, WhatsApp, Telegram, Messenger and LinkedIn\",\"publisher\":{\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/#organization\",\"name\":\"DMpro\",\"url\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/dmpro-icon-512.png\",\"contentUrl\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/dmpro-icon-512.png\",\"width\":512,\"height\":512,\"caption\":\"DMpro\"},\"image\":{\"@id\":\"https:\\\/\\\/dmpro.brandid.app\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.instagram.com\\\/brandid.creators\\\/\",\"https:\\\/\\\/brandid.app\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Campaign Flow Builder - DMpro Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/campaign-builder\/","og_locale":"en_US","og_type":"article","og_title":"Campaign Flow Builder - DMpro Blog","og_description":"Help Center\/ Campaign Flow Builder Visual Canvas Campaign Flow Builder Every palette block for every platform: Instagram, TikTok, LinkedIn, Facebook, WhatsApp, Telegram, Discord. Plus shared logic blocks and canvas tips. Untitled campaign \u00b7 Instagram Draft Publish \u2192 TRIGGERS \ud83d\udcac Comment on Post \ud83d\udce9 Direct Message \ud83d\udcd6 Story Reply ACTIONS \ud83d\udcac Send DM \u2728 AI Response [&hellip;]","og_url":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/campaign-builder\/","og_site_name":"DMpro Blog","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/campaign-builder\/","url":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/campaign-builder\/","name":"Campaign Flow Builder - DMpro Blog","isPartOf":{"@id":"https:\/\/dmpro.brandid.app\/blog\/#website"},"datePublished":"2026-11-07T15:49:35+00:00","breadcrumb":{"@id":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/campaign-builder\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/campaign-builder\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/campaign-builder\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dmpro.brandid.app\/blog\/"},{"@type":"ListItem","position":2,"name":"DMpro Help Center","item":"https:\/\/dmpro.brandid.app\/blog\/dmpro-knowledge-base\/"},{"@type":"ListItem","position":3,"name":"Campaign Flow Builder"}]},{"@type":"WebSite","@id":"https:\/\/dmpro.brandid.app\/blog\/#website","url":"https:\/\/dmpro.brandid.app\/blog\/","name":"DMpro Blog","description":"DM automation playbooks for Instagram, TikTok, WhatsApp, Telegram, Messenger and LinkedIn","publisher":{"@id":"https:\/\/dmpro.brandid.app\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dmpro.brandid.app\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/dmpro.brandid.app\/blog\/#organization","name":"DMpro","url":"https:\/\/dmpro.brandid.app\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dmpro.brandid.app\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/dmpro.brandid.app\/blog\/wp-content\/uploads\/2026\/09\/dmpro-icon-512.png","contentUrl":"https:\/\/dmpro.brandid.app\/blog\/wp-content\/uploads\/2026\/09\/dmpro-icon-512.png","width":512,"height":512,"caption":"DMpro"},"image":{"@id":"https:\/\/dmpro.brandid.app\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.instagram.com\/brandid.creators\/","https:\/\/brandid.app\/"]}]}},"_links":{"self":[{"href":"https:\/\/dmpro.brandid.app\/blog\/wp-json\/wp\/v2\/pages\/643","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dmpro.brandid.app\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dmpro.brandid.app\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dmpro.brandid.app\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dmpro.brandid.app\/blog\/wp-json\/wp\/v2\/comments?post=643"}],"version-history":[{"count":0,"href":"https:\/\/dmpro.brandid.app\/blog\/wp-json\/wp\/v2\/pages\/643\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/dmpro.brandid.app\/blog\/wp-json\/wp\/v2\/pages\/585"}],"wp:attachment":[{"href":"https:\/\/dmpro.brandid.app\/blog\/wp-json\/wp\/v2\/media?parent=643"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}