diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md
index 8236ab42..1152253f 100644
--- a/DEVELOPMENT.md
+++ b/DEVELOPMENT.md
@@ -151,6 +151,7 @@ drush features-export -y webform_examples
 drush features-export -y webform_templates
 drush features-export -y webform_test
 drush features-export -y webform_test_translation
+drush features-export -y webform_test_views
 drush features-export -y webform_node
 
 # Tidy webform configuration from your site.          
@@ -159,6 +160,7 @@ drush webform-tidy -y --dependencies webform_examples
 drush webform-tidy -y --dependencies webform_templates
 drush webform-tidy -y --dependencies webform_test
 drush webform-tidy -y --dependencies webform_test_translation
+drush webform-tidy -y --dependencies webform_test_views
 drush webform-tidy -y --dependencies webform_node
 
 # Re-import all webform configuration into your site.      
@@ -167,6 +169,7 @@ drush features-import -y webform_examples
 drush features-import -y webform_templates
 drush features-import -y webform_test
 drush features-import -y webform_test_translation
+drush features-import -y webform_test_views
 drush features-import -y webform_node
 ```
 
diff --git a/config/install/system.action.webform_submission_delete_action.yml b/config/install/system.action.webform_submission_delete_action.yml
new file mode 100644
index 00000000..1c55babb
--- /dev/null
+++ b/config/install/system.action.webform_submission_delete_action.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - webform
+id: webform_submission_delete_action
+label: 'Delete submission'
+type: webform_submission
+plugin: webform_submission_delete_action
+configuration: {  }
diff --git a/config/install/system.action.webform_submission_make_sticky_action.yml b/config/install/system.action.webform_submission_make_sticky_action.yml
new file mode 100644
index 00000000..85ea0ab6
--- /dev/null
+++ b/config/install/system.action.webform_submission_make_sticky_action.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - webform
+id: webform_submission_make_sticky_action
+label: 'Star/Flag submission'
+type: webform_submission
+plugin: webform_submission_make_sticky_action
+configuration: {  }
diff --git a/config/install/system.action.webform_submission_make_unsticky_action.yml b/config/install/system.action.webform_submission_make_unsticky_action.yml
new file mode 100644
index 00000000..880931e5
--- /dev/null
+++ b/config/install/system.action.webform_submission_make_unsticky_action.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - webform
+id: webform_submission_make_unsticky_action
+label: 'Unstar/unflag submission'
+type: webform_submission
+plugin: webform_submission_make_unsticky_action
+configuration: {  }
diff --git a/config/schema/webform.schema.yml b/config/schema/webform.schema.yml
index 429bf768..5b946763 100644
--- a/config/schema/webform.schema.yml
+++ b/config/schema/webform.schema.yml
@@ -823,3 +823,15 @@ field.formatter.settings.webform_entity_reference_link:
     label:
       type: label
       label: 'Link label to the referenced webform'
+
+action.configuration.webform_submission_delete_action:
+  type: action_configuration_default
+  label: 'Delete submission configuration'
+
+action.configuration.webform_submission_make_sticky_action:
+  type: action_configuration_default
+  label: 'Star/Flag selected submission configuration'
+
+action.configuration.webform_submission_make_unsticky_action:
+  type: action_configuration_default
+  label: 'Unstar/Unflag selected submission configuration'
diff --git a/config/schema/webform.views.schema.yml b/config/schema/webform.views.schema.yml
new file mode 100644
index 00000000..eb8a2829
--- /dev/null
+++ b/config/schema/webform.views.schema.yml
@@ -0,0 +1,3 @@
+views.field.webform_submission_bulk_form:
+  type: views_field_bulk_form
+  label: 'Webform submission bulk form'
diff --git a/src/BreadCrumb/WebformBreadcrumbBuilder.php b/src/BreadCrumb/WebformBreadcrumbBuilder.php
index f86a8e0c..d7a39daf 100644
--- a/src/BreadCrumb/WebformBreadcrumbBuilder.php
+++ b/src/BreadCrumb/WebformBreadcrumbBuilder.php
@@ -9,6 +9,7 @@ use Drupal\Core\Link;
 use Drupal\Core\Routing\RouteMatchInterface;
 use Drupal\Core\StringTranslation\StringTranslationTrait;
 use Drupal\Core\StringTranslation\TranslationInterface;
+use Drupal\Core\Url;
 use Drupal\webform\WebformInterface;
 use Drupal\webform\WebformRequestInterface;
 use Drupal\webform\WebformSubmissionInterface;
@@ -75,6 +76,14 @@ class WebformBreadcrumbBuilder implements BreadcrumbBuilderInterface {
       return FALSE;
     }
 
+    try {
+      $path = Url::fromRouteMatch($route_match)->toString();
+      $base_path = base_path();
+    }
+    catch (\Exception $exception) {
+      $path = '';
+      $base_path = '/';
+    }
     if ((count($args) > 2) && $args[0] == 'entity' && ($args[2] == 'webform' ||  $args[2] == 'webform_submission')) {
       $this->type = 'webform_source_entity';
     }
@@ -98,6 +107,9 @@ class WebformBreadcrumbBuilder implements BreadcrumbBuilderInterface {
       $webform = $route_match->getParameter('webform');
       $this->type = ($webform->isTemplate() && $this->moduleHandler->moduleExists('webform_templates')) ? 'webform_template' : 'webform';
     }
+    elseif (strpos($path, $base_path . 'admin/structure/webform/test/') === 0) {
+      $this->type = 'webform_test';
+    }
     else {
       $this->type = NULL;
     }
@@ -138,6 +150,10 @@ class WebformBreadcrumbBuilder implements BreadcrumbBuilderInterface {
       $breadcrumb->addLink(Link::createFromRoute($this->t('Structure'), 'system.admin_structure'));
       $breadcrumb->addLink(Link::createFromRoute($this->t('Webforms'), 'entity.webform.collection'));
       switch ($this->type) {
+        case 'webform_test':
+          $breadcrumb->addLink(Link::createFromRoute($this->t('Testing'), 'webform_test.index'));
+          break;
+
         case 'webform_template':
           $breadcrumb->addLink(Link::createFromRoute($this->t('Templates'), 'entity.webform.templates'));
           break;
diff --git a/src/Entity/WebformSubmission.php b/src/Entity/WebformSubmission.php
index e5b9b776..20630966 100644
--- a/src/Entity/WebformSubmission.php
+++ b/src/Entity/WebformSubmission.php
@@ -27,7 +27,7 @@ use Drupal\webform\WebformSubmissionInterface;
  *   handlers = {
  *     "storage" = "Drupal\webform\WebformSubmissionStorage",
  *     "storage_schema" = "Drupal\webform\WebformSubmissionStorageSchema",
- *     "views_data" = "Drupal\views\EntityViewsData",
+ *     "views_data" = "Drupal\webform\WebformSubmissionViewsData",
  *     "view_builder" = "Drupal\webform\WebformSubmissionViewBuilder",
  *     "list_builder" = "Drupal\webform\WebformSubmissionListBuilder",
  *     "access" = "Drupal\webform\WebformSubmissionAccessControlHandler",
diff --git a/src/Form/WebformSubmissionDeleteMultiple.php b/src/Form/WebformSubmissionDeleteMultiple.php
new file mode 100644
index 00000000..d7b5d02d
--- /dev/null
+++ b/src/Form/WebformSubmissionDeleteMultiple.php
@@ -0,0 +1,125 @@
+<?php
+
+namespace Drupal\webform\Form;
+
+use Drupal\Core\Entity\EntityManagerInterface;
+use Drupal\Core\Form\ConfirmFormBase;
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\Core\Url;
+use Drupal\user\PrivateTempStoreFactory;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\HttpFoundation\RedirectResponse;
+
+/**
+ * Provides a webform submission deletion confirmation form.
+ */
+class WebformSubmissionDeleteMultiple extends ConfirmFormBase {
+
+  /**
+   * The array of webform_submissions to delete.
+   *
+   * @var string[][]
+   */
+  protected $webformSubmissionInfo = array();
+
+  /**
+   * The tempstore factory.
+   *
+   * @var \Drupal\user\PrivateTempStoreFactory
+   */
+  protected $tempStoreFactory;
+
+  /**
+   * The webform submission storage.
+   *
+   * @var \Drupal\Core\Entity\EntityStorageInterface
+   */
+  protected $manager;
+
+  /**
+   * Constructs a DeleteMultiple form object.
+   *
+   * @param \Drupal\user\PrivateTempStoreFactory $temp_store_factory
+   *   The tempstore factory.
+   * @param \Drupal\Core\Entity\EntityManagerInterface $manager
+   *   The entity manager.
+   */
+  public function __construct(PrivateTempStoreFactory $temp_store_factory, EntityManagerInterface $manager) {
+    $this->tempStoreFactory = $temp_store_factory;
+    $this->storage = $manager->getStorage('webform_submission');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function create(ContainerInterface $container) {
+    return new static(
+      $container->get('user.private_tempstore'),
+      $container->get('entity.manager')
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFormId() {
+    return 'webform_submission_multiple_delete_confirm';
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getQuestion() {
+    return $this->formatPlural(count($this->webformSubmissionInfo), 'Are you sure you want to delete this submission?', 'Are you sure you want to delete these submissions?');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getCancelUrl() {
+    return new Url('entity.webform_submission.collection');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getConfirmText() {
+    return t('Delete');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function buildForm(array $form, FormStateInterface $form_state) {
+    /** @var \Drupal\webform\WebformSubmissionInterface[] $webform_submissions */
+    $webform_submissions = $this->tempStoreFactory->get('webform_submission_multiple_delete_confirm')->get(\Drupal::currentUser()->id());
+    if (empty($webform_submissions)) {
+      return new RedirectResponse($this->getCancelUrl()->setAbsolute()->toString());
+    }
+
+    $form['webform_submissions'] = array(
+      '#theme' => 'item_list',
+      '#items' => array_map(function ($webform_submission) {
+        return $webform_submission->label();
+      }, $webform_submissions),
+    );
+    $form = parent::buildForm($form, $form_state);
+    return $form;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function submitForm(array &$form, FormStateInterface $form_state) {
+    /** @var \Drupal\webform\WebformSubmissionInterface[] $webform_submissions */
+    $webform_submissions = $this->tempStoreFactory->get('webform_submission_multiple_delete_confirm')->get(\Drupal::currentUser()->id());
+    if ($form_state->getValue('confirm') && !empty($webform_submissions)) {
+      $this->storage->delete($webform_submissions);
+      $this->logger('content')->notice('Deleted @count submission.', array('@count' => count($webform_submissions)));
+      $this->tempStoreFactory->get('webform_submission_multiple_delete_confirm')->delete(\Drupal::currentUser()->id());
+    }
+
+    $form_state->setRedirect('entity.webform_submission.collection');
+  }
+
+}
diff --git a/src/Plugin/Action/DeleteWebformSubmission.php b/src/Plugin/Action/DeleteWebformSubmission.php
new file mode 100644
index 00000000..7f64a802
--- /dev/null
+++ b/src/Plugin/Action/DeleteWebformSubmission.php
@@ -0,0 +1,93 @@
+<?php
+
+namespace Drupal\webform\Plugin\Action;
+
+use Drupal\Core\Action\ActionBase;
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
+use Drupal\Core\Session\AccountInterface;
+use Drupal\user\PrivateTempStoreFactory;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+
+/**
+ * Redirects to a webform submission deletion form.
+ *
+ * @Action(
+ *   id = "webform_submission_delete_action",
+ *   label = @Translation("Delete submission"),
+ *   type = "webform_submission",
+ *   confirm_form_route_name = "webform_submission.multiple_delete_confirm"
+ * )
+ */
+class DeleteWebformSubmission extends ActionBase implements ContainerFactoryPluginInterface {
+
+  /**
+   * The tempstore factory.
+   *
+   * @var \Drupal\user\PrivateTempStoreFactory
+   */
+  protected $tempStoreFactory;
+
+  /**
+   * The current user.
+   *
+   * @var \Drupal\Core\Session\AccountInterface
+   */
+  protected $currentUser;
+
+  /**
+   * Constructs a DeleteWebformSubmission object.
+   *
+   * @param array $configuration
+   *   A configuration array containing information about the plugin instance.
+   * @param string $plugin_id
+   *   The plugin ID for the plugin instance.
+   * @param mixed $plugin_definition
+   *   The plugin implementation definition.
+   * @param \Drupal\user\PrivateTempStoreFactory $temp_store_factory
+   *   The tempstore factory.
+   * @param AccountInterface $current_user
+   *   Current user.
+   */
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, PrivateTempStoreFactory $temp_store_factory, AccountInterface $current_user) {
+    $this->currentUser = $current_user;
+    $this->tempStoreFactory = $temp_store_factory;
+
+    parent::__construct($configuration, $plugin_id, $plugin_definition);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
+    return new static(
+      $configuration,
+      $plugin_id,
+      $plugin_definition,
+      $container->get('user.private_tempstore'),
+      $container->get('current_user')
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function executeMultiple(array $entities) {
+    $this->tempStoreFactory->get('webform_submission_multiple_delete_confirm')->set($this->currentUser->id(), $entities);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function execute($object = NULL) {
+    $this->executeMultiple(array($object));
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function access($object, AccountInterface $account = NULL, $return_as_object = FALSE) {
+    /** @var \Drupal\webform\WebformSubmissionInterface $object */
+    return $object->access('delete', $account, $return_as_object);
+  }
+
+}
diff --git a/src/Plugin/Action/StickyWebformSubmission.php b/src/Plugin/Action/StickyWebformSubmission.php
new file mode 100644
index 00000000..faf8e40a
--- /dev/null
+++ b/src/Plugin/Action/StickyWebformSubmission.php
@@ -0,0 +1,38 @@
+<?php
+
+namespace Drupal\webform\Plugin\Action;
+
+use Drupal\Core\Action\ActionBase;
+use Drupal\Core\Session\AccountInterface;
+
+/**
+ * Makes a webform submission sticky.
+ *
+ * @Action(
+ *   id = "webform_submission_make_sticky_action",
+ *   label = @Translation("Star/Flag selected submission"),
+ *   type = "webform_submission"
+ * )
+ */
+class StickyWebformSubmission extends ActionBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function execute($entity = NULL) {
+    /** @var \Drupal\webform\WebformSubmissionInterface $entity */
+    $entity->setSticky(TRUE)->save();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function access($object, AccountInterface $account = NULL, $return_as_object = FALSE) {
+    /** @var \Drupal\webform\WebformSubmissionInterface $object */
+    $result = $object->sticky->access('edit', $account, TRUE)
+      ->andIf($object->access('update', $account, TRUE));
+
+    return $return_as_object ? $result : $result->isAllowed();
+  }
+
+}
diff --git a/src/Plugin/Action/UnstickyWebformSubmission.php b/src/Plugin/Action/UnstickyWebformSubmission.php
new file mode 100644
index 00000000..1bf047e7
--- /dev/null
+++ b/src/Plugin/Action/UnstickyWebformSubmission.php
@@ -0,0 +1,38 @@
+<?php
+
+namespace Drupal\webform\Plugin\Action;
+
+use Drupal\Core\Action\ActionBase;
+use Drupal\Core\Session\AccountInterface;
+
+/**
+ * Makes a webform submission unsticky.
+ *
+ * @Action(
+ *   id = "webform_submission_make_unsticky_action",
+ *   label = @Translation("Unstar/unflag selected submission"),
+ *   type = "webform_submission"
+ * )
+ */
+class UnstickyWebformSubmission extends ActionBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function execute($entity = NULL) {
+    /** @var \Drupal\webform\WebformSubmissionInterface $entity */
+    $entity->setSticky(FALSE)->save();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function access($object, AccountInterface $account = NULL, $return_as_object = FALSE) {
+    /** @var \Drupal\webform\WebformSubmissionInterface $object */
+    $result = $object->sticky->access('edit', $account, TRUE)
+      ->andIf($object->access('update', $account, TRUE));
+
+    return $return_as_object ? $result : $result->isAllowed();
+  }
+
+}
diff --git a/src/Plugin/views/field/WebformSubmissionBulkForm.php b/src/Plugin/views/field/WebformSubmissionBulkForm.php
new file mode 100644
index 00000000..e2a6db6d
--- /dev/null
+++ b/src/Plugin/views/field/WebformSubmissionBulkForm.php
@@ -0,0 +1,21 @@
+<?php
+
+namespace Drupal\webform\Plugin\views\field;
+
+use Drupal\system\Plugin\views\field\BulkForm;
+
+/**
+ * Defines a webform submission operations bulk form element.
+ *
+ * @ViewsField("webform_submission_bulk_form")
+ */
+class WebformSubmissionBulkForm extends BulkForm {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function emptySelectedMessage() {
+    return $this->t('No submission selected.');
+  }
+
+}
diff --git a/src/Tests/Views/WebformViewsBulkFormTest.php b/src/Tests/Views/WebformViewsBulkFormTest.php
new file mode 100644
index 00000000..4ada530a
--- /dev/null
+++ b/src/Tests/Views/WebformViewsBulkFormTest.php
@@ -0,0 +1,85 @@
+<?php
+
+namespace Drupal\webform\Tests\Views;
+
+use Drupal\webform\Entity\Webform;
+use Drupal\webform\Tests\WebformTestBase;
+
+/**
+ * Tests a webform submission bulk form.
+ *
+ * @group webform
+ * @see \Drupal\webform\Plugin\views\field\WebformSubmissionBulkForm
+ */
+class WebformViewsBulkFormTest extends WebformTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  protected static $modules = ['webform', 'webform_test_views'];
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setUp() {
+    parent::setUp();
+
+    // Create users.
+    $this->createUsers();
+  }
+
+  /**
+   * Tests the webform submission bulk form.
+   */
+  public function testBulkForm() {
+    $this->drupalLogin($this->adminSubmissionUser);
+
+    // Check no submissions.
+    $this->drupalGet('admin/structure/webform/test/views_bulk_form');
+    $this->assertRaw('No submissions available.');
+
+    // Create a test submission.
+    $this->drupalLogin($this->adminWebformUser);
+    $webform = Webform::load('contact');
+    $sid = $this->postSubmissionTest($webform, [], t('Send message'));
+    $webform_submission = $this->loadSubmission($sid);
+
+    $this->drupalLogin($this->adminSubmissionUser);
+
+    // Check make sticky action.
+    $this->assertFalse($webform_submission->isSticky(), 'Webform submission is not sticky');
+    $edit = array(
+      'webform_submission_bulk_form[0]' => TRUE,
+      'action' => 'webform_submission_make_sticky_action',
+    );
+    $this->drupalPostForm('admin/structure/webform/test/views_bulk_form', $edit, t('Apply to selected items'));
+    $webform_submission = $this->loadSubmission($webform_submission->id());
+    $this->assertTrue($webform_submission->isSticky(), 'Webform submission has been made sticky');
+
+    // Check make unsticky action.
+    $edit = array(
+      'webform_submission_bulk_form[0]' => TRUE,
+      'action' => 'webform_submission_make_unsticky_action',
+    );
+    $this->drupalPostForm('admin/structure/webform/test/views_bulk_form', $edit, t('Apply to selected items'));
+    $webform_submission = $this->loadSubmission($webform_submission->id());
+    $this->assertFalse($webform_submission->isSticky(), 'Webform submission is not sticky anymore');
+
+    // Check delete action.
+    $edit = array(
+      'webform_submission_bulk_form[0]' => TRUE,
+      'action' => 'webform_submission_delete_action',
+    );
+    $this->drupalPostForm('admin/structure/webform/test/views_bulk_form', $edit, t('Apply to selected items'));
+    $this->drupalPostForm(NULL, array(), t('Delete'));
+    $webform_submission = $this->loadSubmission($webform_submission->id());
+    $this->assertNull($webform_submission, '1: Webform submission has been deleted');
+
+    // Check no submissions.
+    $this->drupalGet('admin/structure/webform/test/views_bulk_form');
+    $this->assertRaw('No submissions available.');
+  }
+
+}
diff --git a/src/Tests/WebformTestTrait.php b/src/Tests/WebformTestTrait.php
index f7f073ec..8c30662e 100644
--- a/src/Tests/WebformTestTrait.php
+++ b/src/Tests/WebformTestTrait.php
@@ -168,6 +168,22 @@ trait WebformTestTrait {
   /****************************************************************************/
 
   /**
+   * Load the specified webform submission from the storage.
+   *
+   * @param int $sid
+   *   The submission identifier.
+   *
+   * @return \Drupal\webform\WebformSubmissionInterface
+   *   The loaded webform submission.
+   */
+  protected function loadSubmission($sid) {
+    /** @var \Drupal\webform\WebformSubmissionStorage $storage */
+    $storage = $this->container->get('entity.manager')->getStorage('webform_submission');
+    $storage->resetCache([$sid]);
+    return $storage->load($sid);
+  }
+
+  /**
    * Purge all submission before the webform.module is uninstalled.
    */
   protected function purgeSubmissions() {
diff --git a/src/WebformEntityViewsData.php b/src/WebformEntityViewsData.php
new file mode 100644
index 00000000..9f62de39
--- /dev/null
+++ b/src/WebformEntityViewsData.php
@@ -0,0 +1,29 @@
+<?php
+
+namespace Drupal\webform;
+
+use Drupal\views\EntityViewsData;
+
+/**
+ * Provides the views data for the webform entity type.
+ */
+class WebformEntityViewsData extends EntityViewsData {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getViewsData() {
+    $data = parent::getViewsData();
+
+    $data['webform']['webform_bulk_form'] = array(
+      'title' => $this->t('Webform operations bulk form'),
+      'help' => $this->t('Add a form element that lets you run operations on multiple webform.'),
+      'field' => array(
+        'id' => 'webform_bulk_form',
+      ),
+    );
+
+    return $data;
+  }
+
+}
diff --git a/src/WebformHelpManager.php b/src/WebformHelpManager.php
index f813e500..f74b543d 100644
--- a/src/WebformHelpManager.php
+++ b/src/WebformHelpManager.php
@@ -560,6 +560,12 @@ class WebformHelpManager implements WebformHelpManagerInterface {
       'youtube_id' => 'xYBW2g0osd4',
     ];
 
+    $videos['translate'] = [
+      'title' => $this->t('Translating Webforms'),
+      'content' => $this->t('This screencast walks through translating a Webform.'),
+      'youtube_id' => 'rF8Bd-0w6Cg',
+    ];
+
     $videos['admin'] = [
       'title' => $this->t('Administering and Extending the Webform module'),
       'content' => $this->t("This screencast walks through administering the Webform module's admin settings, options, and behaviors."),
@@ -882,6 +888,7 @@ class WebformHelpManager implements WebformHelpManagerInterface {
       ],
       'title' => $this->t('Translating a webform'),
       'content' => $this->t("The Translation page allows a webform's configuration and elements to be translated into multiple languages."),
+      'video_id' => 'translate',
     ];
 
     /****************************************************************************/
diff --git a/src/WebformSubmissionStorage.php b/src/WebformSubmissionStorage.php
index a85c2054..722f4f38 100644
--- a/src/WebformSubmissionStorage.php
+++ b/src/WebformSubmissionStorage.php
@@ -816,8 +816,12 @@ class WebformSubmissionStorage extends SqlContentEntityStorage implements Webfor
    *   An array of webform submissions.
    */
   protected function deleteData(array $webform_submissions) {
+    $sids = [];
+    foreach ($webform_submissions as $webform_submission) {
+      $sids[$webform_submission->id()] = $webform_submission->id();
+    }
     Database::getConnection()->delete('webform_submission_data')
-      ->condition('sid', array_keys($webform_submissions), 'IN')
+      ->condition('sid', $sids, 'IN')
       ->execute();
   }
 
diff --git a/src/WebformSubmissionViewsData.php b/src/WebformSubmissionViewsData.php
new file mode 100644
index 00000000..85f88a29
--- /dev/null
+++ b/src/WebformSubmissionViewsData.php
@@ -0,0 +1,29 @@
+<?php
+
+namespace Drupal\webform;
+
+use Drupal\views\EntityViewsData;
+
+/**
+ * Provides the views data for the webform submission entity type.
+ */
+class WebformSubmissionViewsData extends EntityViewsData {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getViewsData() {
+    $data = parent::getViewsData();
+
+    $data['webform_submission']['webform_submission_bulk_form'] = array(
+      'title' => $this->t('Webform submission operations bulk form'),
+      'help' => $this->t('Add a form element that lets you run operations on multiple submissions.'),
+      'field' => array(
+        'id' => 'webform_submission_bulk_form',
+      ),
+    );
+
+    return $data;
+  }
+
+}
diff --git a/tests/modules/webform_test/config/install/views.view.webform_test_entity_reference.yml b/tests/modules/webform_test/config/install/views.view.webform_test_entity_reference.yml
index 8ed3639d..bd2580fb 100644
--- a/tests/modules/webform_test/config/install/views.view.webform_test_entity_reference.yml
+++ b/tests/modules/webform_test/config/install/views.view.webform_test_entity_reference.yml
@@ -1,6 +1,9 @@
 langcode: en
 status: true
 dependencies:
+  enforced:
+    module:
+      - webform_test
   module:
     - node
     - user
diff --git a/tests/modules/webform_test_views/config/install/views.view.webform_test_views_bulk_form.yml b/tests/modules/webform_test_views/config/install/views.view.webform_test_views_bulk_form.yml
new file mode 100644
index 00000000..e855a12c
--- /dev/null
+++ b/tests/modules/webform_test_views/config/install/views.view.webform_test_views_bulk_form.yml
@@ -0,0 +1,916 @@
+langcode: en
+status: true
+dependencies:
+  enforced:
+    module:
+      - webform_test_views
+  config:
+    - system.menu.admin
+  module:
+    - user
+    - webform
+id: webform_test_views_bulk_form
+label: 'Webform test: Views bulk form'
+module: views
+description: 'Test webform submission bulk form.'
+tag: ''
+base_table: webform_submission
+base_field: sid
+core: 8.x
+display:
+  default:
+    display_plugin: default
+    id: default
+    display_title: Master
+    position: 0
+    display_options:
+      access:
+        type: perm
+        options:
+          perm: 'administer webform submission'
+      cache:
+        type: tag
+        options: {  }
+      query:
+        type: views_query
+        options:
+          disable_sql_rewrite: false
+          distinct: false
+          replica: false
+          query_comment: ''
+          query_tags: {  }
+      exposed_form:
+        type: basic
+        options:
+          submit_button: Apply
+          reset_button: false
+          reset_button_label: Reset
+          exposed_sorts_label: 'Sort by'
+          expose_sort_order: true
+          sort_asc_label: Asc
+          sort_desc_label: Desc
+      pager:
+        type: full
+        options:
+          items_per_page: 50
+          offset: 0
+          id: 0
+          total_pages: null
+          tags:
+            previous: ‹‹
+            next: ››
+            first: '« First'
+            last: 'Last »'
+          expose:
+            items_per_page: true
+            items_per_page_label: 'Items per page'
+            items_per_page_options: '5, 10, 25, 50, 100, 200'
+            items_per_page_options_all: false
+            items_per_page_options_all_label: '- All -'
+            offset: false
+            offset_label: Offset
+          quantity: 9
+      style:
+        type: table
+        options:
+          grouping: {  }
+          row_class: ''
+          default_row_class: true
+          override: true
+          sticky: false
+          caption: ''
+          summary: ''
+          description: ''
+          columns:
+            webform_submission_bulk_form: webform_submission_bulk_form
+            sid: sid
+            webform_id: webform_id
+            in_draft: in_draft
+            sticky: sticky
+            created: created
+            completed: completed
+            remote_addr: remote_addr
+            operations: operations
+          info:
+            webform_submission_bulk_form:
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            sid:
+              sortable: true
+              default_sort_order: desc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            webform_id:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            in_draft:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            sticky:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            created:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            completed:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            remote_addr:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            operations:
+              sortable: false
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+          default: sid
+          empty_table: false
+      row:
+        type: fields
+        options:
+          inline: {  }
+          separator: ''
+          hide_empty: false
+          default_field_elements: true
+      fields:
+        webform_submission_bulk_form:
+          id: webform_submission_bulk_form
+          table: webform_submission
+          field: webform_submission_bulk_form
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Webform submission operations bulk form'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          action_title: Action
+          include_exclude: exclude
+          selected_actions: {  }
+          entity_type: webform_submission
+          plugin_id: webform_submission_bulk_form
+        sid:
+          id: sid
+          table: webform_submission
+          field: sid
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: '#'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: number_integer
+          settings:
+            thousand_separator: ''
+            prefix_suffix: true
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: sid
+          plugin_id: field
+        webform_id:
+          id: webform_id
+          table: webform_submission
+          field: webform_id
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Webform
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: target_id
+          type: entity_reference_label
+          settings:
+            link: true
+          group_column: target_id
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: webform_id
+          plugin_id: field
+        in_draft:
+          id: in_draft
+          table: webform_submission
+          field: in_draft
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Draft
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: false
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: boolean
+          settings:
+            format: yes-no
+            format_custom_true: ''
+            format_custom_false: ''
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: in_draft
+          plugin_id: field
+        sticky:
+          id: sticky
+          table: webform_submission
+          field: sticky
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Sticky
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: boolean
+          settings:
+            format: yes-no
+            format_custom_true: ''
+            format_custom_false: ''
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: sticky
+          plugin_id: field
+        created:
+          id: created
+          table: webform_submission
+          field: created
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Created
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: false
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: timestamp
+          settings:
+            date_format: medium
+            custom_date_format: ''
+            timezone: ''
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: created
+          plugin_id: field
+        completed:
+          id: completed
+          table: webform_submission
+          field: completed
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Completed
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: timestamp
+          settings:
+            date_format: medium
+            custom_date_format: ''
+            timezone: ''
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: completed
+          plugin_id: field
+        remote_addr:
+          id: remote_addr
+          table: webform_submission
+          field: remote_addr
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'IP address'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: string
+          settings:
+            link_to_entity: false
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: remote_addr
+          plugin_id: field
+        operations:
+          id: operations
+          table: webform_submission
+          field: operations
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Operations
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          destination: true
+          entity_type: null
+          entity_field: null
+          plugin_id: entity_operations
+      filters:
+        webform_id:
+          id: webform_id
+          table: webform_submission
+          field: webform_id
+          relationship: none
+          group_type: group
+          admin_label: ''
+          operator: in
+          value: {  }
+          group: 1
+          exposed: true
+          expose:
+            operator_id: webform_id_op
+            label: Webform
+            description: ''
+            use_operator: false
+            operator: webform_id_op
+            identifier: webform_id
+            required: false
+            remember: false
+            multiple: false
+            remember_roles:
+              authenticated: authenticated
+              anonymous: '0'
+              administrator: '0'
+            reduce: false
+          is_grouped: false
+          group_info:
+            label: ''
+            description: ''
+            identifier: ''
+            optional: true
+            widget: select
+            multiple: false
+            remember: false
+            default_group: All
+            default_group_multiple: {  }
+            group_items: {  }
+          entity_type: webform_submission
+          entity_field: webform_id
+          plugin_id: bundle
+        in_draft:
+          id: in_draft
+          table: webform_submission
+          field: in_draft
+          relationship: none
+          group_type: group
+          admin_label: ''
+          operator: '='
+          value: All
+          group: 1
+          exposed: true
+          expose:
+            operator_id: ''
+            label: 'Is draft'
+            description: ''
+            use_operator: false
+            operator: in_draft_op
+            identifier: in_draft
+            required: false
+            remember: false
+            multiple: false
+            remember_roles:
+              authenticated: authenticated
+              anonymous: '0'
+              administrator: '0'
+          is_grouped: false
+          group_info:
+            label: ''
+            description: ''
+            identifier: ''
+            optional: true
+            widget: select
+            multiple: false
+            remember: false
+            default_group: All
+            default_group_multiple: {  }
+            group_items: {  }
+          entity_type: webform_submission
+          entity_field: in_draft
+          plugin_id: boolean
+        sticky:
+          id: sticky
+          table: webform_submission
+          field: sticky
+          relationship: none
+          group_type: group
+          admin_label: ''
+          operator: '='
+          value: All
+          group: 1
+          exposed: true
+          expose:
+            operator_id: ''
+            label: Sticky
+            description: ''
+            use_operator: false
+            operator: sticky_op
+            identifier: sticky
+            required: false
+            remember: false
+            multiple: false
+            remember_roles:
+              authenticated: authenticated
+              anonymous: '0'
+              administrator: '0'
+          is_grouped: false
+          group_info:
+            label: ''
+            description: ''
+            identifier: ''
+            optional: true
+            widget: select
+            multiple: false
+            remember: false
+            default_group: All
+            default_group_multiple: {  }
+            group_items: {  }
+          entity_type: webform_submission
+          entity_field: sticky
+          plugin_id: boolean
+      sorts: {  }
+      header: {  }
+      footer: {  }
+      empty:
+        area_text_custom:
+          id: area_text_custom
+          table: views
+          field: area_text_custom
+          relationship: none
+          group_type: group
+          admin_label: ''
+          empty: true
+          tokenize: false
+          content: 'No submissions available.'
+          plugin_id: text_custom
+      relationships: {  }
+      arguments: {  }
+      display_extenders: {  }
+      filter_groups:
+        operator: AND
+        groups:
+          1: AND
+      title: 'Views bulk form'
+    cache_metadata:
+      max-age: 0
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - url
+        - url.query_args
+        - user
+        - user.permissions
+      tags: {  }
+  page:
+    display_plugin: page
+    id: page
+    display_title: Page
+    position: 1
+    display_options:
+      display_extenders: {  }
+      path: admin/structure/webform/test/views_bulk_form
+      menu:
+        type: normal
+        title: 'Views bulk form'
+        description: 'Test webform submission bulk form.'
+        expanded: false
+        parent: webform_test.index
+        weight: 0
+        context: '0'
+        menu_name: admin
+    cache_metadata:
+      max-age: 0
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - url
+        - url.query_args
+        - user
+        - user.permissions
+      tags: {  }
diff --git a/tests/modules/webform_test_views/config/install/views.view.webform_test_views_fields.yml b/tests/modules/webform_test_views/config/install/views.view.webform_test_views_fields.yml
new file mode 100644
index 00000000..e8d7834f
--- /dev/null
+++ b/tests/modules/webform_test_views/config/install/views.view.webform_test_views_fields.yml
@@ -0,0 +1,1257 @@
+langcode: en
+status: true
+dependencies:
+  enforced:
+    module:
+      - webform_test_views
+  config:
+    - system.menu.admin
+  module:
+    - user
+    - webform
+id: webform_test_views_fields
+label: 'Webform test: Views fields'
+module: views
+description: 'Test webform submission fields.'
+tag: ''
+base_table: webform_submission
+base_field: sid
+core: 8.x
+display:
+  default:
+    display_plugin: default
+    id: default
+    display_title: Master
+    position: 0
+    display_options:
+      access:
+        type: perm
+        options:
+          perm: 'administer webform submission'
+      cache:
+        type: tag
+        options: {  }
+      query:
+        type: views_query
+        options:
+          disable_sql_rewrite: false
+          distinct: false
+          replica: false
+          query_comment: ''
+          query_tags: {  }
+      exposed_form:
+        type: basic
+        options:
+          submit_button: Apply
+          reset_button: false
+          reset_button_label: Reset
+          exposed_sorts_label: 'Sort by'
+          expose_sort_order: true
+          sort_asc_label: Asc
+          sort_desc_label: Desc
+      pager:
+        type: full
+        options:
+          items_per_page: 50
+          offset: 0
+          id: 0
+          total_pages: null
+          tags:
+            previous: ‹‹
+            next: ››
+            first: '« First'
+            last: 'Last »'
+          expose:
+            items_per_page: true
+            items_per_page_label: 'Items per page'
+            items_per_page_options: '5, 10, 25, 50, 100, 200'
+            items_per_page_options_all: false
+            items_per_page_options_all_label: '- All -'
+            offset: false
+            offset_label: Offset
+          quantity: 9
+      style:
+        type: table
+        options:
+          grouping: {  }
+          row_class: ''
+          default_row_class: true
+          override: true
+          sticky: false
+          caption: ''
+          summary: ''
+          description: ''
+          columns:
+            sid: sid
+            webform_id: webform_id
+            langcode: langcode
+            entity_type: entity_type
+            entity_id: entity_id
+            uid: uid
+            in_draft: in_draft
+            current_page: current_page
+            sticky: sticky
+            notes: notes
+            created: created
+            completed: completed
+            remote_addr: remote_addr
+            uuid: uuid
+            token: token
+            operations: operations
+          info:
+            sid:
+              sortable: true
+              default_sort_order: desc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            webform_id:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            langcode:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            entity_type:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            entity_id:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            uid:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            in_draft:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            current_page:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            sticky:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            notes:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            created:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            completed:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            remote_addr:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            uuid:
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            token:
+              sortable: true
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            operations:
+              sortable: false
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+          default: sid
+          empty_table: false
+      row:
+        type: fields
+        options:
+          inline: {  }
+          separator: ''
+          hide_empty: false
+          default_field_elements: true
+      fields:
+        sid:
+          id: sid
+          table: webform_submission
+          field: sid
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: '#'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: number_integer
+          settings:
+            thousand_separator: ''
+            prefix_suffix: true
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: sid
+          plugin_id: field
+        webform_id:
+          id: webform_id
+          table: webform_submission
+          field: webform_id
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Webform
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: target_id
+          type: entity_reference_label
+          settings:
+            link: true
+          group_column: target_id
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: webform_id
+          plugin_id: field
+        langcode:
+          id: langcode
+          table: webform_submission
+          field: langcode
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Language
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: language
+          settings:
+            link_to_entity: false
+            native_language: false
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: langcode
+          plugin_id: field
+        entity_type:
+          id: entity_type
+          table: webform_submission
+          field: entity_type
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Submitted to: Entity type'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: string
+          settings:
+            link_to_entity: false
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: entity_type
+          plugin_id: field
+        entity_id:
+          id: entity_id
+          table: webform_submission
+          field: entity_id
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Submitted to: Entity ID'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: string
+          settings:
+            link_to_entity: false
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: entity_id
+          plugin_id: field
+        uid:
+          id: uid
+          table: webform_submission
+          field: uid
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Submitted by'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: target_id
+          type: entity_reference_label
+          settings:
+            link: true
+          group_column: target_id
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: uid
+          plugin_id: field
+        in_draft:
+          id: in_draft
+          table: webform_submission
+          field: in_draft
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Draft
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: false
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: boolean
+          settings:
+            format: yes-no
+            format_custom_true: ''
+            format_custom_false: ''
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: in_draft
+          plugin_id: field
+        current_page:
+          id: current_page
+          table: webform_submission
+          field: current_page
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Current page'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: string
+          settings:
+            link_to_entity: false
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: current_page
+          plugin_id: field
+        sticky:
+          id: sticky
+          table: webform_submission
+          field: sticky
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Sticky
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: boolean
+          settings:
+            format: yes-no
+            format_custom_true: ''
+            format_custom_false: ''
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: sticky
+          plugin_id: field
+        notes:
+          id: notes
+          table: webform_submission
+          field: notes
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Notes
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: basic_string
+          settings: {  }
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: notes
+          plugin_id: field
+        created:
+          id: created
+          table: webform_submission
+          field: created
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Created
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: false
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: timestamp
+          settings:
+            date_format: medium
+            custom_date_format: ''
+            timezone: ''
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: created
+          plugin_id: field
+        completed:
+          id: completed
+          table: webform_submission
+          field: completed
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Completed
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: timestamp
+          settings:
+            date_format: medium
+            custom_date_format: ''
+            timezone: ''
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: completed
+          plugin_id: field
+        remote_addr:
+          id: remote_addr
+          table: webform_submission
+          field: remote_addr
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'IP address'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: string
+          settings:
+            link_to_entity: false
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: remote_addr
+          plugin_id: field
+        uuid:
+          id: uuid
+          table: webform_submission
+          field: uuid
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Submission UUID'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: string
+          settings:
+            link_to_entity: false
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: webform_submission
+          entity_field: uuid
+          plugin_id: field
+        token:
+          id: token
+          table: webform_submission
+          field: token
+          entity_type: webform_submission
+          entity_field: token
+          plugin_id: field
+        operations:
+          id: operations
+          table: webform_submission
+          field: operations
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Operations
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          destination: true
+          entity_type: null
+          entity_field: null
+          plugin_id: entity_operations
+      filters: {  }
+      sorts: {  }
+      header: {  }
+      footer: {  }
+      empty:
+        area_text_custom:
+          id: area_text_custom
+          table: views
+          field: area_text_custom
+          relationship: none
+          group_type: group
+          admin_label: ''
+          empty: true
+          tokenize: false
+          content: 'No submissions available.'
+          plugin_id: text_custom
+      relationships: {  }
+      arguments: {  }
+      display_extenders: {  }
+      filter_groups:
+        operator: AND
+        groups: {  }
+      title: 'Views bulk form'
+    cache_metadata:
+      max-age: 0
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - url.query_args
+        - user
+        - user.permissions
+      tags: {  }
+  page:
+    display_plugin: page
+    id: page
+    display_title: Page
+    position: 1
+    display_options:
+      display_extenders: {  }
+      path: admin/structure/webform/test/views_fields
+      menu:
+        type: normal
+        title: 'Views fields'
+        description: 'Test webform submission fields.'
+        expanded: false
+        parent: webform_test.index
+        weight: 0
+        context: '0'
+        menu_name: admin
+    cache_metadata:
+      max-age: 0
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - url.query_args
+        - user
+        - user.permissions
+      tags: {  }
diff --git a/tests/modules/webform_test_views/webform_test_views.info.yml b/tests/modules/webform_test_views/webform_test_views.info.yml
new file mode 100644
index 00000000..0acb5da4
--- /dev/null
+++ b/tests/modules/webform_test_views/webform_test_views.info.yml
@@ -0,0 +1,10 @@
+name: 'Webform module Views tests'
+type: module
+description: 'Support module for Webform that provides working examples for Views integration.'
+package: Testing
+core: 8.x
+dependencies:
+  - node
+  - user
+  - views
+  - webform
diff --git a/tests/modules/webform_test_views/webform_test_views.links.menu.yml b/tests/modules/webform_test_views/webform_test_views.links.menu.yml
new file mode 100755
index 00000000..d5ab6f2d
--- /dev/null
+++ b/tests/modules/webform_test_views/webform_test_views.links.menu.yml
@@ -0,0 +1,5 @@
+webform_test.index:
+  title: 'Testing'
+  route_name: webform_test.index
+  parent: entity.webform.collection
+  description: 'Test webform functionality.'
diff --git a/tests/modules/webform_test_views/webform_test_views.links.task.yml b/tests/modules/webform_test_views/webform_test_views.links.task.yml
new file mode 100644
index 00000000..39ec4abd
--- /dev/null
+++ b/tests/modules/webform_test_views/webform_test_views.links.task.yml
@@ -0,0 +1,5 @@
+webform_test.index:
+  title: 'Testing'
+  route_name: webform_test.index
+  base_route: entity.webform.collection
+  weight: 100
diff --git a/tests/modules/webform_test_views/webform_test_views.routing.yml b/tests/modules/webform_test_views/webform_test_views.routing.yml
new file mode 100644
index 00000000..5dc74bf3
--- /dev/null
+++ b/tests/modules/webform_test_views/webform_test_views.routing.yml
@@ -0,0 +1,7 @@
+webform_test.index:
+  path: '/admin/structure/webform/test'
+  defaults:
+    _controller: '\Drupal\system\Controller\SystemController::systemAdminMenuBlockPage'
+    _title: 'Webforms'
+  requirements:
+    _permission: 'access administration pages'
diff --git a/tests/src/Kernel/Breadcrumb/WebformBreadcrumbBuilderTest.php b/tests/src/Kernel/Breadcrumb/WebformBreadcrumbBuilderTest.php
index e5f7f89d..e4f4b8e9 100644
--- a/tests/src/Kernel/Breadcrumb/WebformBreadcrumbBuilderTest.php
+++ b/tests/src/Kernel/Breadcrumb/WebformBreadcrumbBuilderTest.php
@@ -576,3 +576,9 @@ class WebformBreadcrumbBuilderTest extends UnitTestCase {
   }
 
 }
+
+if (!function_exists('base_path')) {
+  function base_path() {
+    return '/';
+  }
+}
diff --git a/tests/src/Unit/Plugin/views/field/WebformSubmissionBulkFormTest.php b/tests/src/Unit/Plugin/views/field/WebformSubmissionBulkFormTest.php
new file mode 100644
index 00000000..4e761aaa
--- /dev/null
+++ b/tests/src/Unit/Plugin/views/field/WebformSubmissionBulkFormTest.php
@@ -0,0 +1,101 @@
+<?php
+
+namespace Drupal\Tests\webform\Unit\Plugin\views\field;
+
+use Drupal\Core\DependencyInjection\ContainerBuilder;
+use Drupal\Tests\UnitTestCase;
+use Drupal\webform\Plugin\views\field\WebformSubmissionBulkForm;
+
+/**
+ * @see \Drupal\Tests\node\Unit\Plugin\views\field\NodeBulkFormTest
+ * @see \Drupal\Tests\user\Unit\Plugin\views\field\UserBulkFormTest
+ * @coversDefaultClass \Drupal\webform\Plugin\views\field\WebformSubmissionBulkForm
+ * @group user
+ */
+class WebformSubmissionBulkFormTest extends UnitTestCase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function tearDown() {
+    parent::tearDown();
+  }
+
+  /**
+   * Tests the constructor assignment of actions.
+   */
+  public function testConstructor() {
+    $container = new ContainerBuilder();
+    // Mock 'user.private_tempstore' and 'current_user'.
+    // @see \Drupal\webform\Plugin\Action\DeleteWebformSubmission::__construct
+    $container->set('user.private_tempstore', $this->getMockBuilder('Drupal\user\PrivateTempStoreFactory')
+      ->disableOriginalConstructor()
+      ->getMock());
+    $container->set('current_user', $this->getMock('Drupal\Core\Session\AccountInterface'));
+    \Drupal::setContainer($container);
+
+    $actions = array();
+    for ($i = 1; $i <= 2; $i++) {
+      $action = $this->getMock('\Drupal\system\ActionConfigEntityInterface');
+      $action->expects($this->any())
+        ->method('getType')
+        ->will($this->returnValue('webform_submission'));
+      $actions[$i] = $action;
+    }
+
+    $action = $this->getMock('\Drupal\system\ActionConfigEntityInterface');
+    $action->expects($this->any())
+      ->method('getType')
+      ->will($this->returnValue('user'));
+    $actions[] = $action;
+
+    $entity_storage = $this->getMock('Drupal\Core\Entity\EntityStorageInterface');
+    $entity_storage->expects($this->any())
+      ->method('loadMultiple')
+      ->will($this->returnValue($actions));
+
+    $entity_manager = $this->getMock('Drupal\Core\Entity\EntityManagerInterface');
+    $entity_manager->expects($this->once())
+      ->method('getStorage')
+      ->with('action')
+      ->will($this->returnValue($entity_storage));
+
+    $language_manager = $this->getMock('Drupal\Core\Language\LanguageManagerInterface');
+
+    $views_data = $this->getMockBuilder('Drupal\views\ViewsData')
+      ->disableOriginalConstructor()
+      ->getMock();
+    $views_data->expects($this->any())
+      ->method('get')
+      ->with('webform_submission')
+      ->will($this->returnValue(array('table' => array('entity type' => 'webform_submission'))));
+    $container = new ContainerBuilder();
+    $container->set('views.views_data', $views_data);
+    $container->set('string_translation', $this->getStringTranslationStub());
+    \Drupal::setContainer($container);
+
+    $storage = $this->getMock('Drupal\views\ViewEntityInterface');
+    $storage->expects($this->any())
+      ->method('get')
+      ->with('base_table')
+      ->will($this->returnValue('webform_submission'));
+
+    $executable = $this->getMockBuilder('Drupal\views\ViewExecutable')
+      ->disableOriginalConstructor()
+      ->getMock();
+    $executable->storage = $storage;
+
+    $display = $this->getMockBuilder('Drupal\views\Plugin\views\display\DisplayPluginBase')
+      ->disableOriginalConstructor()
+      ->getMock();
+
+    $definition['title'] = '';
+    $options = array();
+
+    $webform_submission_bulk_form = new WebformSubmissionBulkForm(array(), 'webform_submission_bulk_form', $definition, $entity_manager, $language_manager);
+    $webform_submission_bulk_form->init($executable, $display, $options);
+
+    $this->assertAttributeEquals(array_slice($actions, 0, -1, TRUE), 'actions', $webform_submission_bulk_form);
+  }
+
+}
diff --git a/webform.install b/webform.install
index b4a4755f..22edf968 100644
--- a/webform.install
+++ b/webform.install
@@ -9,6 +9,7 @@ use Drupal\Component\Render\FormattableMarkup;
 use Drupal\Core\Database\Database;
 use Drupal\Core\Serialization\Yaml;
 use Drupal\Core\Render\Element;
+use Drupal\system\Entity\Action;
 use Drupal\webform\Entity\Webform;
 use Drupal\webform\Plugin\WebformElement\ManagedFile;
 
@@ -192,6 +193,27 @@ function _webform_update_form_settings() {
 }
 
 /**
+ * Update or install any new system.actions.* config entities.
+ */
+function _webform_update_actions() {
+  $files = file_scan_directory(drupal_get_path('module', 'webform') . '/config', '/^system.action..*\.yml$/');
+  foreach ($files as $path => $file) {
+    $action_id = str_replace('system.action.', '', $file->name);
+    $action = Action::load($action_id);
+    if (!$action) {
+      // Install new action.
+      $data = Yaml::decode(file_get_contents($path));
+      $action = Action::create($data);
+      $action->trustData()->save();
+    }
+  }
+}
+
+/******************************************************************************/
+// Update hooks.
+/******************************************************************************/
+
+/**
  * Issue #2834203: Convert webform field target_id to 32 characters.
  */
 function webform_update_8001() {
@@ -426,3 +448,10 @@ function _webform_update_8011(array &$element) {
 function webform_update_8012() {
   _webform_update_admin_settings();
 }
+
+/**
+ * Issue #2840858: Create Webform and Webform Submission Action plugins.
+ */
+function webform_update_8013() {
+  _webform_update_actions();
+}
diff --git a/webform.routing.yml b/webform.routing.yml
index 981f512e..79171222 100644
--- a/webform.routing.yml
+++ b/webform.routing.yml
@@ -400,6 +400,13 @@ entity.webform_submission.sticky_toggle:
     _entity_access: 'webform_submission.update'
     _csrf_token: 'TRUE'
 
+webform_submission.multiple_delete_confirm:
+  path: '/admin/structure/webform/results/delete'
+  defaults:
+    _form: '\Drupal\webform\Form\WebformSubmissionDeleteMultiple'
+  requirements:
+    _permission: 'administer webform submission'
+
 # Handlers
 
 webform.handler_plugins:
