Attachments vs. Salesforce Files
Before you begin working with Attachments, it's important to determine whether you'd like to create an Attachment record, or send a file upload to Salesforce Files. Salesforce is currently transitioning to the use of Salesforce Files for their file management system. Because of this, many FormAssembly users are also transitioning to Salesforce Files, rather than creating Attachment records.
An Attachment record in Salesforce is a record of the Attachment Object which is then associated with a parent record. Attachments appear in the Notes & Attachments Related List.
Salesforce Files use ContentVersion records which are then associated with a parent record. Files appear in the Files Related List on the parent record.
If you would like to use Attachments, you can continue reading this help document! For Salesforce Files, please check out this document instead.
Salesforce Attachment Limit
Salesforce file size limit is 25MB per file uploaded as a file attachment, and 2GB per file uploaded as a feed attachment. For more on Salesforce limits, please click here.
FormAssembly has a limit of 35MB per response. *Enterprise Users have a default limit of 30MB but can request that this limit be decreased or increased to a maximum of 35MB.
There is no total upload limit in FormAssembly. In other words, you can have as many file uploads across your forms as you would like to, provided each individual response is under the response limits noted above.
Currently, Salesforce is discouraging the use of file uploads as file attachments, and encouraging the use of file uploads as feed attachments. Given that FormAssembly currently has a larger upload limit than Salesforce's file attachment limit, we also recommend using feed attachments as opposed to file attachments, particularly if you will be working with larger sized files.
Create an Attachment
If your form contains a file upload field, you can attach the uploaded files to most Salesforce objects by creating a dependent Attachment object.
- Create the parent object for the Attachment object.
- Click the Add an Object dependent on button, and select the Attachment object from the list.
- You'll need to map the ID of the parent object to the Attachment object's Parent ID. To do this, map the Parent ID in the field mapping section. Note that this is a required field.
- The other required fields for the Attachment object, "File Name" and "Body," will also appear in the Field Mapping section. You will need to map both of these fields to the file upload field in your form.
- If you are running into difficulty opening attachments in Salesforce, try mapping your Salesforce Attachment FileType field to the Upload Field in your form as well.
Note: FormAssembly currently has no feature that allows for the monitoring of an upload's progress. Because of this, users will have to wait until the receive a notification that their upload is complete. Therefore, it is advisable to have your users only upload smaller sized files in order to prevent long wait times and interrupted uploads.
Note: Repeatable file upload fields in the form cannot be merged into one record in Salesforce. They must be sent as multiple records.
Using Formula or Text for the File Name Field
If you are using a formula or text value for the mapping of the File Name field, then you will also need to include the filetype extention (e.g. .doc, .pdf, .jpg, etc.). This will happen automatically if you map the upload field itself to the File Name field, but not if you set the File Name field to “a formula or text."
If you’re using a validation to ensure that your files will always have the same extension, you can add that extension directly to the text mapped in the Salesforce connector.
If not, you'll need to either map the File Name field to the file upload field itself or use this formula to include the attachment with custom text, changing "Your Custom Filename" to the filename you want to use and %%tfa_upload%% to the field alias of the upload field:
@CONCATENATE("Your Custom Filename",".",@MID(%%tfa_upload%%,@COMPUTE(@FIND(".",%%tfa_upload%%,1)+1),40))