basetime / bldr-sfmc

CLI Development Tool for Salesforce Marketing Cloud
Other
25 stars 2 forks source link

Can't push Code Snippet asset #28

Closed kamil-ccnl closed 2 years ago

kamil-ccnl commented 2 years ago

BLDR-SFMC Bug Report

As all SFMC instances are different, before submitting a bug report please ensure that the following coditions have been met:

  1. An Installed Package has been created with the permissions outlined in the README.md file
  2. Run bldr config -l -d to ensure that your configuration is saved and that the credentials match your Installed Package
  3. Run bldr status to ensure that the configuration you are attempting to use is set as the Current State

When using bldr push command, the Code Snippet file is not pushed to the SFMC instance. There's no error message either. After using bldr status command, the file is still visible as staged. The issue doesn't happen for every file though. After creating new folder and Code Snippet asset, the changes have been successfully pushed.

Expected Behavior

Staged file is being successfully pushed to SFMC.

Steps to Reproduce

  1. Run bldr clone command for a folder with multiple assets
  2. Make a change in one of them and save
  3. Run bldr add command that adds one of the files (the modified one) to Staged files list
  4. Run bldr push command

Additional Context

I'm using the flow for already existing assets: clone > make changes > add > push

anthonymzupancic commented 2 years ago

@kamil-ccnl Thanks for the report, could you possibly post the .local.manifest file (at least the asset in question) as well as the .bldr file.

I have an idea of what the issue might be but would need to confirm.

stevesmename commented 2 years ago

@anthonymzupancic @kamil-ccnl - I was wondering if this was possibly trying to post into a shared content folder too (which is not yet supported).

anthonymzupancic commented 2 years ago

@stevesmename So the Shared Content Builder known-issue is around cloning assets from a shared folder Id. The API call to gather the folderId and subfolderIds is different for shared/local (BU) assets.

@kamil-ccnl what I'm looking for in your .bldr file is that the folderPath key for the asset ends with the file extension (should be .html). I recently made a fix that was dropping the extension off in this file and had the same issue.

kamil-ccnl commented 2 years ago

@anthonymzupancic this is the .local.manifest.json code:

{
"id": 517940,
        "bldrId": "6fc9ddfc-318f-4beb-8ec7-92a147559c65",
        "name": "GetSalesforceEmails",
        "customerKey": "159deb59-bba7-4c1d-a86c-74048dc66c53",
        "assetType": {
          "id": 220,
          "name": "codesnippetblock",
          "displayName": "Code Snippet Block"
        },
        "category": {
          "id": 436543,
          "name": "Salesforce Emails",
          "parentId": 436542,
          "folderPath": "Content Builder/Webfleet/Salesforce Emails"
        },
}

I ommited content because it contains credentials.

.bldr code:

{
    "id": 517940,
    "context": "contentBuilder",
    "bldrId": "cc5923dc-5948-4dc3-88dd-1abd13a6279b",
    "folderPath": "Content Builder/Webfleet/Salesforce Emails/GetSalesforceEmails.html"
  }

As you can see it ends with .html

anthonymzupancic commented 2 years ago

@kamil-ccnl everything looks right. I tested some things out on a computer separate from my development Mac and was able to complete the flow successfully.

Can you confirm if you have the latest release? (I've not yet added a version command so it would just be based on when you installed bldr)

I would also suggest trying a different folder/asset to see if that works.

If the different set works, try to delete and clone your project again.

kamil-ccnl commented 2 years ago

@anthonymzupancic I installed it just yesterday, so it's probably the latest ;) The only pattern I noticed is that this issue is present when working with files created before creation of the installed package in Marketing Cloud. There's no issue with files created after that point. I'll explore this theory further.

anthonymzupancic commented 2 years ago

Just to be clear:

You were able to clone > update > push a different set of assets that were created after your installed package was created?

When it was created shouldn't have any bearing on the assets themselves...

Can you post your installed package scope? Also, just to rule it out... are the assets you're having issues with shared assets?

There might be other bugs with them that we are just not aware of.

kamil-ccnl commented 2 years ago

@anthonymzupancic

You were able to clone > update > push a different set of assets that were created after your installed package was created?

If you mean clone > add > push then that's true. Now I've tested more assets that were created before installed package and they are also successfully pushed. I've also created new assets in the same "Salesforce Emails" folder and I can clone and push them without problems, except one AMPscript Code Snippet. I'm starting to suspect that it's maybe a script content issue, like some character is unescaped. I've created a copy of the asset and pushed it with exact same code successfully. I'm totally confused.

Can you post your installed package scope?

Scope: Email - Read,Write Web - r,w

Documents and Images - r,w Saved Content - r,w

Automations - r,w Journeys - r,w

List and Subscribers - r

Data Extensions - r,w File Locations - r,w

Accounts - r

Basically in alignment with README file guidelines.

are the assets you're having issues with shared assets?

No, all assets are saved locally, on particular BU, and are not shared. I'm working on parent BU though, I don't know if it has any relevance to the issue.

If AMPscript code snippets should be supported then I can open a new ticket since I have problems with cloning one.

kamil-ccnl commented 2 years ago

One interesting remark: although push command is not successful and no changes are being made in code content of the asset, the user in "Last Modified" column changes to "bldr-cli app user".

anthonymzupancic commented 2 years ago

So it's saying it's successfully worked but no content OS being updated?

If it's a code snippet block it shouldn't matter if it's AMPscript, HTML, SSJS.

My recommendation is (if you haven't):

Delete all local files/folders and start from scratch. See if issues still persist.

Sorry for the persisted issues, I'm using the same build for various projects and am not able to replicate the issue.

kamil-ccnl commented 2 years ago

The bldr is not saying that it has successfully pushed the assets, please take a look at attached screenshot image

Deleting files and cloning them again solved the issue, although I've done this before with no positive effect. Good that it works now. I've also cloned (and pushed) AMPscript file successfully I think we can close this ticket and if the issue will occur again then I'll create a new one.

Thank you for the support.

kamil-ccnl commented 2 years ago

Maybe small remark, before closing the ticket: I've compared .bldr and .local.manifest.json files from the not working and currently working folder. For .bldr:

for .local.manifest.json: old:

"contentBuilder": { 
    "folders": [    
      { 
        "id": 436543,   
        "name": "Salesforce Emails",    
        "parentId": 436542, 
        "categoryType": "asset",    
        "folderPath": "Content Builder/Webfleet/Salesforce Emails"  
      },    
      { 
        "id": 436542,   
        "name": "Webfleet", 
        "parentId": 9037,   
        "categoryType": "asset",    
        "rootFolder": false 
      },    
      { 
        "id": 9037, 
        "name": "Content Builder",  
        "parentId": 0,  
        "categoryType": "asset",    
        "rootFolder": false 
      } 
    ]

new:

"contentBuilder": {
    "folders": [
      {
        "id": 436543,
        "name": "Salesforce Emails",
        "parentId": 436542,
        "categoryType": "asset",
        "rootFolder": true,
        "folderPath": "Content Builder/Webfleet/Salesforce Emails"
      }
    ]
anthonymzupancic commented 2 years ago

Sounds like it's resolved. I'll keep an eye out for any behaviors like this and address as needed.

Bldr is currently being reworked a bit currently so processing should be more streamlined and more stable.

I'll take this type of issue into consideration before releasing the next iteration!

Going to close the ticket, please open another if issue persists.