public String startWorkflow(
            String name,
            Integer version,
            String correlationId,
            Integer priority,
            Map<String, Object> input,
            String externalInputPayloadStoragePath,
            Map<String, String> taskToDomain,
            WorkflowDef workflowDef) {
        StartWorkflowInput startWorkflowInput = new StartWorkflowInput();
        startWorkflowInput.setName(name);
        startWorkflowInput.setVersion(version);
        startWorkflowInput.setCorrelationId(correlationId);
        startWorkflowInput.setPriority(priority);
        startWorkflowInput.setWorkflowInput(input);
        startWorkflowInput.setExternalInputPayloadStoragePath(externalInputPayloadStoragePath);
        startWorkflowInput.setTaskToDomain(taskToDomain);
        startWorkflowInput.setWorkflowDefinition(workflowDef);

        return startWorkflowOperation.execute(startWorkflowInput);
    }
Start a new workflow with StartWorkflowRequest, which allows task to be executed in a domain.

@param name Name of the workflow you want to start.
@param version Version of the workflow you want to start.
@param correlationId CorrelationID of the workflow you want to start.
@param priority Priority of the workflow you want to start.
@param input Input to the workflow you want to start.
@param externalInputPayloadStoragePath the relative path in external storage where input *
    payload is located
@param taskToDomain the task to domain mapping
@param workflowDef - workflow definition
@return the id of the workflow instance that can be use for tracking.
core/src/main/java/com/netflix/conductor/service/WorkflowServiceImpl.java