1. You can override and set default values of the fields on the Send Fax screen.
  2. While sending faxes manually you currently have to either go to the Send Fax tab or click a button “Send Fax” under related list “Sent Faxes” on the object that it’s related to.
  3. You can create your own custom button that will pass the values needed to send a fax from the object. This may save you a few clicks, so you don’t have to select Fax number manually.
    1. For example: if you need to specify what field on the Contact to always use for faxing (there’s a few options that you typically select from dropdown: business fax, mobile phone etc.)
  4. Go to Send Fax tab. You should be able to see a URL in the following format: https://efaxapp.na30.visual.force.com/apex/SendFaxManually?sfdc.tabName=01r36000000Q7nF (where “tabName” will equal to unique ID for your org).
  5. Copy this URL  to clipboard. Go to Setup and create a new Button on the Master object you want to be sending the faxes from.
  6. Paste the URL from clipboard into the button edit area.
  7. Now you can add multiple variables to URL to indicate Recipient and Fax field and Org Fax Number that you always want to use in the following format: https://efaxapp.na30.visual.force.com/apex/SendFaxManually?sfdc.tabName=01r36000000Q7nF&recipientid=Record ID&faxfield=Fax Field&orgfaxnumber=8444430082

    1. Record ID – you can replace this with a merged ID field of the object that will be set as a recipient (it can be your Master record Id field or any other record Id, as long as this is a lookup field on Master object) or an actual ID of specific record if needed.
      1. For example: we are creating a button on Contact and want to send fax to this contact, then recipientid={!Contact.Id}.
      2. If we are creating a button on Opportunity but want the Recipient to be set to Primary Contact (which is a lookup field to Contact on Opportunity), then recipientid={!Opportunity.Primary_ContactId__c}
      3. Note: when you create a lookup field on objects, Salesforce will automatically add the field for lookup record ID in the available merge field dropdown in button edit window. For example: if you create a lookup field to Contact on Opportunity called Primary Contact, then when you merge the fields into button code you will have an option to merge Primary Contact (merges first and last name) and Primary Contact ID (merges id). 
    2. Fax Field will be a merged field of the Fax field from the master object OR object that you set for Recipient.
      1. For example: if we selected Primary Contact (lookup to Contact) on Opportunity as a recipient, we will set the faxfield to API name of fax field we want to use from Contact object. We want to use a custom field Office Fax that is a field on Contact, then faxfield=Office_Fax__c
    3. Sent Fax Relationship – API name of the lookup field on the Sent Fax object that will be used to relate the Sent Fax record to a target object. The field type must be lookup to the same object which we are using to send the fax to, e.g. if we are faxing to a contact, we must use the Sent Fax’s built-in Contact field, or any other custom field that is a lookup to Contact object. Correct format is: sentfaxrelationship=Contact__c (if it is the built-in Contact lookup), or sentfaxrelationship=Fax_Contact__c (for a custom Contact lookup of your choice).
    4. Fax Number is a number to send the fax to. For example: faxnumber=3331112222.
    5. Org Fax Number is also an option by adding this variable in the URL parameters: orgfaxnumber=8444430082 where the number is the fax number assigned to your org and only the numbers without any other characters.  You would only use this if you had more than one fax number.
    6. Document Id is the Id of the document you wish to fax. It’s possible to send attachment, file, and document types. You can pass it a hardcoded Id if you always want to use the same document, or a merge field code, e.g. documentid={!Attachment.Id}.
    7. Barcode Position Left – if barcode feature is enabled,  this parameter is used to pass a value that will specify how many pixels will the barcode be placed away from the left edge of the document. It’s supposed to be an integer. The format is as follows: barcodepositionleft=100.
    8. Barcode Position Top – if barcode feature is enabled,  this parameter is used to pass a value that will specify how many pixels will the barcode be placed away from the top edge of the document. It’s supposed to be an integer. The format is as follows: barcodepositiontop=70.
    9. Barcode Size Width – if barcode feature is enabled,  this parameter is used to pass a value that will specify how many pixels will the barcode be wide on the document. It’s supposed to be an integer. The format is as follows: barcodesizewidth=50.
    10. In the end the button code we built will look like this:
      1. https://efaxapp.na30.visual.force.com/apex/SendFaxManually?sfdc.tabName=01r36000000Q7nF&recipientid={!Opportunity.Primary_ContactId__c}&faxfield=Office_Fax__c&sentfaxrelationship=Contact__c&faxnumber=3331112222&orgfaxnumber=8444430082&documentid={!Attachment.Id}&barcodepositionleft=100&barcodepositiontop=70&barcodesizewidth=50
  8. You don’t have to specify all of these parameters and you don’t have to specify them in this exact order. You can also replace the merged fields with actual Id’s of specific record if you have a need for it. You can use this strategy in custom buttons, links, or internal email templates (you need to be able to log in to Salesforce to send fax).