Create vs Update Behavior
When you publish campaigns, Whathead determines whether to create new entities or update existing ones based on whether nodes have platform IDs. Understanding this behavior helps you predict what will happen when you click Publish and manage campaigns effectively.- When entities are created new versus updated
- How platform IDs determine publishing behavior
- Partial success scenarios and how to handle them
- Retry workflows for failed campaigns
- Cross-platform transfer publishing behavior
CREATE vs UPDATE Decision
Whathead makes a simple decision for each node: Does the node have an existing platform ID?- No → CREATE (send create request to platform)
- Yes → Check for changes:
- Has changes → UPDATE (send update request to platform)
- No changes → SKIP (no API call)
Platform IDs Explained
Platform IDs are unique identifiers assigned by advertising platforms:- existingCampaignId: ID from Meta, TikTok, Snapchat, or Google for a campaign
- existingAdSetId: ID for an ad set (or ad group/ad squad)
- existingAdId: ID for an ad
When Entities Are Created New
Entities are created new in these scenarios:1. Canvas-Origin Nodes
When you add a node directly on the canvas using + Campaign, + Ad Set, or + Ad, the node has no platform ID. Publishing creates a new entity. Example:2. Pasted Nodes
When you copy and paste nodes, Whathead clears platform IDs from the pasted nodes. This ensures pasted nodes create new entities rather than updating the originals. Example:3. Duplicated Nodes
When you use the duplicate function, Whathead creates new nodes without platform IDs. Example:4. Reconnected Nodes
When you change a node’s parent connection (reconnect), Whathead clears the platform ID. Publishing creates a new entity under the new parent. Example:5. First Publish
When you publish a campaign for the first time, all nodes create new entities because none have platform IDs yet. Example:When Entities Are Updated
Entities are updated in these scenarios:1. Loaded from Platform with Changes
When you load existing campaigns using Select Existing or Expand, the nodes have platform IDs. If you make changes and publish, Whathead updates the existing entities. Example:2. Previously Published and Edited
When you publish a canvas-origin campaign, it receives a platform ID. If you edit and republish, it updates the entity you created. Example:3. Expanded Entities with Changes
When you expand a campaign to load its ad sets and ads, those entities have platform IDs. Changes to expanded entities update the existing entities. Example:When Entities Are Skipped
Entities are skipped (no API call) in these scenarios:1. Loaded from Platform with No Changes
When you load existing campaigns but don’t make any changes, Whathead skips them during publish. Example:2. Previously Published with No New Changes
When you publish a campaign, then publish again without making changes, Whathead skips all entities. Example:3. Partial Campaign Changes
When you change some entities in a campaign but not others, Whathead updates changed entities and skips unchanged ones. Example:Partial Success Scenarios
When publishing multiple campaigns or entities, some may succeed while others fail. Whathead handles partial success gracefully.What Happens During Partial Success
Publishing begins
Some succeed, some fail
Dependent entities blocked
Example Partial Success Scenario
- Campaign A: Fully published and live
- Campaign B: Not published (fix budget and retry)
- Campaign C: Partially published (fix Ad C1a and retry)
Retry Workflow for Failed Campaigns
When publishing fails, you can fix errors and retry without affecting successful entities.How Retry Works
Fix the issues
Retry publishing
Retry Example
First Publish Attempt:- Campaign A is not duplicated
- Ad Set A1 is created under the existing Campaign A
- No unnecessary API calls for Campaign A
Common Retry Scenarios
Campaign succeeded, ad set failed
Campaign succeeded, ad set failed
- Campaign: SKIP (already created)
- Ad set: CREATE (fix error and create)
- Ads: CREATE (will be created under the new ad set)
Campaign and ad set succeeded, ad failed
Campaign and ad set succeeded, ad failed
- Campaign: SKIP (already created)
- Ad set: SKIP (already created)
- Ad: CREATE (fix creative and create)
Multiple campaigns, some succeeded, some failed
Multiple campaigns, some succeeded, some failed
- Successful campaigns: SKIP (all entities already created)
- Failed campaigns: CREATE (fix errors and create)
Parent failed, children not published
Parent failed, children not published
- Campaign: CREATE (fix error and create)
- Ad sets: CREATE (will be created after campaign succeeds)
- Ads: CREATE (will be created after ad sets succeed)
Cross-Platform Transfer Publishing Behavior
When you transfer campaigns between platforms, publishing behavior depends on how you perform the transfer.Transfer by Copy/Paste
When you copy a campaign from one platform and paste it to create a campaign for another platform:Adjust settings
Asset migration
- Original campaign on Platform A: Unchanged
- New campaign on Platform B: Created with all ad sets and ads
- Creative assets: Automatically migrated (or manually uploaded if migration fails)
Transfer Using Cross-Platform Transfer Feature
When you use Whathead’s cross-platform transfer feature:Map settings
- Original campaign on Platform A: Unchanged
- New campaign on Platform B: Created with mapped settings
What Transfers and What Doesn’t
When transferring campaigns between platforms: Always transfers:- Campaign name
- Budget amounts (adjusted for platform minimums)
- Schedule dates
- Ad copy text
- Destination URLs
- Objectives (if equivalent exists on destination platform)
- Targeting (if compatible with destination platform)
- Creative assets (if they meet destination platform specs)
- Platform IDs (always cleared)
- Platform-specific settings (special ad categories, pixel IDs, etc.)
- Custom audiences (must be recreated on destination platform)
Understanding the Preview
Before publishing, Whathead shows a preview of what will happen for each entity. The preview displays CREATE, UPDATE, or SKIP for each node.Preview Example
- Campaign will be updated (you changed the budget)
- First ad set will be skipped (no changes)
- First ad under first ad set will be updated (you changed the copy)
- Second ad under first ad set will be created (new ad)
- Second ad set and its ad will be created (new ad set)
Best Practices
Avoid Accidental Duplicates
Do:- Use Select Existing or Expand to load campaigns you want to update
- Check for green platform ID indicators before publishing
- Review the preview to confirm UPDATE actions for campaigns you want to update
- Republish canvas-origin campaigns expecting them to update (they’ll create duplicates)
- Reconnect nodes unless you intend to create duplicates
- Copy/paste campaigns you want to update (paste clears IDs)
Manage Partial Failures Efficiently
Do:- Fix errors immediately and retry
- Review error messages carefully to understand what went wrong
- Use the preview to confirm only failed entities will be retried
- Delete successful entities and start over
- Manually exclude successful entities (Whathead does this automatically)
- Ignore partial failures (fix them promptly)
Handle Cross-Platform Transfers Correctly
Do:- Use copy/paste or the transfer feature to move campaigns between platforms
- Verify all settings are compatible with the destination platform
- Test with one campaign before transferring many
- Expect platform IDs to transfer (they’re always cleared)
- Assume all settings will transfer automatically (review and adjust)
- Publish without checking the preview
Troubleshooting
I published a campaign twice and got duplicates
I published a campaign twice and got duplicates
- Delete the duplicate campaigns in the platform portal
- To update the campaign in the future, load it using Select Existing
- Alternatively, note the platform ID after first publish and don’t republish canvas-origin nodes
I wanted to update a campaign but it created a new one
I wanted to update a campaign but it created a new one
- Delete the new campaign in the platform portal
- Load the campaign you wanted to update using Select Existing
- Make your changes and publish to update the existing campaign
Some entities succeeded but others failed, what do I do?
Some entities succeeded but others failed, what do I do?
- Review error messages on failed entities
- Fix the errors
- Click Publish again—successful entities will be skipped automatically
- Only failed entities will be retried
I transferred a campaign but it didn't update the original
I transferred a campaign but it didn't update the original
The preview shows CREATE but I expected UPDATE
The preview shows CREATE but I expected UPDATE
- Check if the node has a platform ID (look for the ID in node details)
- If you want to update an existing entity, load it using Select Existing
- If you want to create new, proceed with the publish