Through the salesforce service (Apex or others) you cannot directly communicate with an FTP server (either upload or download).
Your best bet would be to use an external application. Jitterbit Data Loader is the go to application for FTP interactions with salesforce.
You could also create your own service outside of the salesforce platform.
You can't directly access FTP in Apex Code, because FTP requires interactive sockets and multiple ports (not to mention the FTP port isn't available for call outs). You will need an intermediary to translate the request into something that can connect to the FTP server. For example, you could write a SOAP service you could call to send the file to the FTP ...
You can open a support request to enable the 'Delete file from ET FTP or Safehouse' Extract Type in the Data Extract Activity, which will delete the file that matches the filename that you defined in the 'File Naming Pattern' field.
Here's a screenshot of this Extract Type (and other available options).
File Imports are the most tried and true method of getting large amounts of data into SMFC. As for limitations -- most of the issues I've seen with imports haven't been with size or row counts -- it's been with bad data, like extra CR/LFs, bad delimiters or improper text qualification. Importing structured data like XML is possible, but not recommended. ...
My best guess here is the file is being renamed between triggering the automation and reaching the import activity. And I am not talking about something.csv to whatever.csv, but more on the filename extension. Without being expert in the area of FTP, I have seen following behaviour in few cases:
When initiating the file transfer, a file is being created on ...
The two methods of exporting data from a data extension are :
If the file is less than 20 MB it can be downloaded to your pc.
Files larger than this will have to be collected from the FTP location.
Reference: Exporting Data Extensions
For security reasons, your administrator might have set the export to the FTP ...
I'm not sure which PGP public key you are using. You can use a public key to encrypt a PGP file, but you can't use a public key alone to decrypt a PGP file as this will require the corresponding private key (unless you are using the ExactTarget public key).
I believe it is possible to use your own PGP public/private key combination with Safehouse, but you ...
We're looking at deletion as part of controlling sensitive data on the SFTP. Do you have access to a safehouse as a file transfer solution? If not, you may need to create one (thanks Eliot Harper for the writeup)
If so, you can add a step to the end of your import automation workflow to move to the Safehouse. Files within a safehouse have a 21 day retention ...
SFMC documentation is a bit confusing on these topics..
There is a separate FTP space provided for each BU, the login name is always the BU MID.
So if you have primary BU and 10 child-BU's, you'll have a total of 11 FTP accounts you can access. It's not related to any of the SFMC users.
Unfortunately what you ask in your 3rd point is not possible, there ...
You can create data extract activity using 'Enhanced FTP File Move and Copy' extract type, it will help you to move/copy the file from one folder to another. Then you can create import activity to import the same file into your data extension.
To enable this data extract type, you will need to create a ticket with salesforce marketing cloud support team.
Depending on the system you like to fetch files from, there is no need to do so via an API as the (S)FTP protocol is capable of doing so and almost any programming language supports this protocol or has packages/libraries that do so.
This might also be the reason why there is no (or at least no standard and documented) endpoint for interacting with files on ...
Salesforce Support are able to provision few custom Data Extracts having different functionalities, e.g. for deleting files. I seem to remember there is also an option of one specific type being able to move files across folders on Enhanced FTP.
Without knowing exactly how your external processes work it will be tough to say for certain. Something to potentially look in to would be the Unique factor of these results. You are extracting Opens and with this SQL, you are pulling ALL opens instead of the unique ones. As such, there is a possibility that you have duplicate results when comparing it to ...
This is not possible, unfortunately. SSJS and Ampscript are quite limited when it comes to utilising e.g. FTP protocol, and the Enhanced FTP folder is not able to expose its files over HTTP(S) (which would be required, if you were to download it via a Cloud Page).
Typically, the only thing required to access the Enhanced FTP as an sFTP is to change your port on your client (Filezilla, etc.) to port 22. (from port 21). That's pretty much it. Same user and password.
If, however, you're interested in connecting to the SFTP via a set of ssh keys, you'll need to generate the key pair, and then call Marketing Cloud ...
You can hit the URL using Rest webservice and parse the data and create records.
You can use Batch or Future to achieve this.
I'm assuming you want to load the data from the csv into sfdc, not just the file by itself?
You can use Jitterbit to do this, which is a free data loader tool and is able to work with FTP without any customization. For more info, check:
I was also in similar situation and solved it using ANT. In case someone need other approach - please refer this article on how Dataloader can be used to save csv file on FTP server with little help of ANT.
Apex can only communicate through Http(s) protocol. You could create a proxy service on another platform that is capable of communicating with FTP. You would then call this service from salesforce. The service would retrieve the file from the FTP server and return it to salesforce.
There are countless platforms and languages that could accomplish this, ...
If you want to import data from a CSV via an automation. You need to create an import activity inside Contact Builder. Then you decide to push the data SMS all contact or a specific list.
In Automation Studio, you should have access to this import via Import Activity or via Import Mobile Contacts.
You would want to add the SFTP information for your child unit into your Parent BU as a 'File Location'. This can be found in the admin section under Data Management. This would require you to choose the location type of 'external SFTP site'. From there you type in the full FTP path of your child BU's SFTP as well as the corresponding Username and password.
Not by any standard means, as even the documentation on SFTP states the following:
Marketing Cloud allows one FTP user per MID.
Just in case you can check in with your SFMC Account Executive about this requirement, I wouldn't be surprised if they actually are able to create additional FTP accounts.
EDIT: Seems to be possible now, as detailed by Lukas.
Essential update - March 2020
It is now possible to create additional (up to 3 per BU) users in the user interface. Follow these steps:
Hover over your name in the app switcher and click Setup.
Click Data Management.
Click FTP Accounts.
Click Add FTP User. By default, the username is the MID number for
your current Marketing Cloud MID, including the current ...
welcome to SFSE!
I am afraid you are overthinking it. To set it to a subfolder, you need to create a file location specific to it.
Here are the steps:
Go to File Locations in Admin tab
Click on Create
add in name/externalkey/description
Select 'External FTP Site' (or SFTP, etc) from 'Location Type'
In Url you put the FULL Url, including subdirectories. E....
You can't access files(either upload or download) from FTP in Apex Code or other from Salesforce.
Your best bet would be to use an external application. CastIron, Dell Boomi is the go to application for FTP interactions with salesforce.
Also you can create your own webservice outside of the salesforce platform and call it from Apex.
You can also use Dataloader CLI to automate the process of importing the records into salesforce from csv file. Since you are using a FTP server , you can schedule a windows batch job that can pick the .csv file placed at a location in the server and you can call dataloader from the same bat file. You can schedule the bat file in task scheduler to run at ...
If you cannot find the emails that were sent providing you with the User/Pass when this service was activated, you will need to contact the general support desk or your account representative and have them resend you the FTP username and password.
Keep in mind that you will need to have this ability activated on your account to access it(usually through ...
You could set up an Automation with a SQL query activity that joins the two data extensions and writes the result into another data extension which is then used for your email send. The query can also include filters if you like. If different filters should be applied leading to multiple segments, creating one joined data extension and filtered data ...