How do I programatically change default values in a contact form?
You can override your contact forms(both the default and the custom ones) by adding a field widget hook.
Why a field widget hook and not the usual form alter hook like D7? Because overriding the default value of the field can be done only in the respective field widget and not at the form level.

Here's the sample code:

function &lt;mymodule&gt;_field_widget_form_alter(&amp;$element,  \Drupal\Core\Form\FormStateInterface $form_state, $context) {
   $field_definition = $context['items']-&gt;getFieldDefinition();
   $entity = $context['items']-&gt;getEntity();
   if(($entity-&gt;getEntityTypeId() == 'contact_message') &amp;&amp; ($entity-&gt;bundle() == '&lt;your-custom-form-machine-name&gt;')) {
     if($field_definition-&gt;getName() == '&lt;your-field-machine-name&gt;') {
       $element['value']['#default_value'] = 'Hi there!';
     }
   }
}


NOTE This has been tested with Drupal 8.1.1.