0

I want to change the CreatedDate for Folders in SFMC.

Reasoning behind is that Audience Builder / Contact Builder is ordering the folder structure based of the CreatedDate unlike Email Studio which is using an alphabetic ordering.

I am using WSProxy but I am also happy to use SOAP. Here is a sample of changing folder information in SFMC via Soap: Create, Retrieve, Update, and Delete Folders

My WSProxy works to change the Name of the folder but it ignores the CreatedDate.

<script runat=server>
    Platform.Load("Core", "1.1.1");

    api = new Script.Util.WSProxy();

    var res = api.updateItem("DataFolder", {
        ID: 12345,
        CreatedDate: new Date('2010-06-02T14:40:34Z'),
        Name: 'Rename The Folder'

    });
    Write(Stringify(res));
</script>

Result:

Status: "OK"
RequestID: "a5122813-2e9e-4ee1-bd2a-42c35cbcaae4"
Results: Array(1)
    0:
        Object: null
        UpdateResults: null
        ParentPropertyName: null
        StatusCode: "OK"
        StatusMessage: "Folder updated successfully."
        OrdinalID: 0
        ErrorCode: 0
        RequestID: null
        ConversationID: null
        OverallStatusCode: null
        RequestType: "Synchronous"
        ResultType: null
        ResultDetailXML: null

I have tried all sort of date formats

  • string
  • new Date()
  • Iso format
  • US format
  • With timezone / offset
  • Unix timestamp

It seems that I am not allowed to change the CreatedDate. The updateItem is also successful if I only try to change the date itself.

My workaround would be

  • to collect all folders
  • save all DataExtension customerKeys from the folder
  • create all folders again in the correct order
  • relocate the DE's respectively
  • delete the folders

However, at this stage this is a to big of a risk to mess up :)

Any help would be appreciated.

1

Well, simple answer is....You can't.

CreatedDate is not a field you can edit. It is automatically added/filled in by the system when you create the folder. From there it is read-only.

Sample from Describe on DataFolder Object:

<Properties>
   <PartnerKey xsi:nil="true" />
   <ObjectID xsi:nil="true" />
   <Name>CreatedDate</Name>
   <DataType>DateTime</DataType>
   <IsUpdatable>false</IsUpdatable>
   <IsRetrievable>true</IsRetrievable>
   <IsRequired>true</IsRequired>
</Properties>

You will notice in the above, that IsUpdatable is false.

Now all this makes sense. Having the CreatedDate as editable would completely defeat the purpose of it. It is supposed to be a record of when the folder was actually created, not just a data field for you to manipulate.

I know that sucks for your use-case, but it really is not possible.

| improve this answer | |
  • Thanks Gorton - makes sense. Only way to order is by re-creating I guess – shd.lux Apr 15 at 14:30
  • As far as I know. I will try to check around and see if anyone knows of anything else, but not likely. If you absolutely NEED to re-order, the API I believe would be your best option as it can programatically move DEs from folder A to folder B. Removing the potential for human error and increasing speed of the process. – Gortonington Apr 15 at 14:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.