All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. https://docs.novu.co/workflows
- create - Create a workflow
- list - List all workflows
- update - Update a workflow
- workflowDetails - Retrieve a workflow
- delete - Delete a workflow
- modify - Update a workflow
- sync - Sync a workflow
Creates a new workflow in the Novu Cloud environment
package hello.world;
import co.novu.Novu;
import co.novu.models.components.*;
import co.novu.models.errors.ErrorDto;
import co.novu.models.errors.ValidationErrorDto;
import co.novu.models.operations.WorkflowControllerCreateResponse;
import java.lang.Exception;
import java.util.List;
import java.util.Map;
public class Application {
public static void main(String[] args) throws ErrorDto, ValidationErrorDto, Exception {
Novu sdk = Novu.builder()
.secretKey("YOUR_SECRET_KEY_HERE")
.build();
WorkflowControllerCreateResponse res = sdk.workflows().create()
.body(CreateWorkflowDto.builder()
.name("<value>")
.workflowId("<id>")
.steps(List.of())
.preferences(PreferencesRequestDto.builder()
.user(User.of(PreferencesRequestDtoWorkflowPreferencesDto.builder()
.all(PreferencesRequestDtoWorkflowPreferencesDtoAll.of(WorkflowPreferenceDto.builder()
.build()))
.channels(Map.ofEntries(
Map.entry("email", ChannelPreferenceDto.builder()
.build()),
Map.entry("sms", ChannelPreferenceDto.builder()
.enabled(false)
.build())))
.build()))
.workflow(PreferencesRequestDtoWorkflow.builder()
.all(WorkflowAll.of(WorkflowPreferenceDto.builder()
.build()))
.channels(Map.ofEntries(
Map.entry("email", ChannelPreferenceDto.builder()
.build()),
Map.entry("sms", ChannelPreferenceDto.builder()
.enabled(false)
.build())))
.build())
.build())
.build())
.call();
if (res.workflowResponseDto().isPresent()) {
System.out.println(res.workflowResponseDto().get());
}
}
}| Parameter | Type | Required | Description |
|---|---|---|---|
idempotencyKey |
Optional<String> | ➖ | A header for idempotency purposes |
body |
CreateWorkflowDto | ✔️ | Workflow creation details |
WorkflowControllerCreateResponse
| Error Type | Status Code | Content Type |
|---|---|---|
| models/errors/ErrorDto | 414 | application/json |
| models/errors/ErrorDto | 400, 401, 403, 404, 405, 409, 413, 415 | application/json |
| models/errors/ValidationErrorDto | 422 | application/json |
| models/errors/ErrorDto | 500 | application/json |
| models/errors/APIException | 4XX, 5XX | */* |
Retrieves a list of workflows with optional filtering and pagination
package hello.world;
import co.novu.Novu;
import co.novu.models.errors.ErrorDto;
import co.novu.models.errors.ValidationErrorDto;
import co.novu.models.operations.WorkflowControllerSearchWorkflowsRequest;
import co.novu.models.operations.WorkflowControllerSearchWorkflowsResponse;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws ErrorDto, ValidationErrorDto, Exception {
Novu sdk = Novu.builder()
.secretKey("YOUR_SECRET_KEY_HERE")
.build();
WorkflowControllerSearchWorkflowsRequest req = WorkflowControllerSearchWorkflowsRequest.builder()
.limit(10d)
.offset(0d)
.build();
WorkflowControllerSearchWorkflowsResponse res = sdk.workflows().list()
.request(req)
.call();
if (res.listWorkflowResponse().isPresent()) {
System.out.println(res.listWorkflowResponse().get());
}
}
}| Parameter | Type | Required | Description |
|---|---|---|---|
request |
WorkflowControllerSearchWorkflowsRequest | ✔️ | The request object to use for the request. |
WorkflowControllerSearchWorkflowsResponse
| Error Type | Status Code | Content Type |
|---|---|---|
| models/errors/ErrorDto | 414 | application/json |
| models/errors/ErrorDto | 400, 401, 403, 404, 405, 409, 413, 415 | application/json |
| models/errors/ValidationErrorDto | 422 | application/json |
| models/errors/ErrorDto | 500 | application/json |
| models/errors/APIException | 4XX, 5XX | */* |
Updates the details of an existing workflow, here workflowId is the identifier of the workflow
package hello.world;
import co.novu.Novu;
import co.novu.models.components.*;
import co.novu.models.errors.ErrorDto;
import co.novu.models.errors.ValidationErrorDto;
import co.novu.models.operations.WorkflowControllerUpdateResponse;
import java.lang.Exception;
import java.util.List;
import java.util.Map;
public class Application {
public static void main(String[] args) throws ErrorDto, ValidationErrorDto, Exception {
Novu sdk = Novu.builder()
.secretKey("YOUR_SECRET_KEY_HERE")
.build();
WorkflowControllerUpdateResponse res = sdk.workflows().update()
.workflowId("<id>")
.body(UpdateWorkflowDto.builder()
.name("<value>")
.steps(List.of())
.preferences(PreferencesRequestDto.builder()
.user(User.of(PreferencesRequestDtoWorkflowPreferencesDto.builder()
.all(PreferencesRequestDtoWorkflowPreferencesDtoAll.of(WorkflowPreferenceDto.builder()
.build()))
.channels(Map.ofEntries(
Map.entry("email", ChannelPreferenceDto.builder()
.build()),
Map.entry("sms", ChannelPreferenceDto.builder()
.enabled(false)
.build())))
.build()))
.workflow(PreferencesRequestDtoWorkflow.builder()
.all(WorkflowAll.of(WorkflowPreferenceDto.builder()
.build()))
.channels(Map.ofEntries(
Map.entry("email", ChannelPreferenceDto.builder()
.build()),
Map.entry("sms", ChannelPreferenceDto.builder()
.enabled(false)
.build())))
.build())
.build())
.origin(ResourceOriginEnum.EXTERNAL)
.build())
.call();
if (res.workflowResponseDto().isPresent()) {
System.out.println(res.workflowResponseDto().get());
}
}
}| Parameter | Type | Required | Description |
|---|---|---|---|
workflowId |
String | ✔️ | N/A |
idempotencyKey |
Optional<String> | ➖ | A header for idempotency purposes |
body |
UpdateWorkflowDto | ✔️ | Workflow update details |
WorkflowControllerUpdateResponse
| Error Type | Status Code | Content Type |
|---|---|---|
| models/errors/ErrorDto | 414 | application/json |
| models/errors/ErrorDto | 400, 401, 403, 404, 405, 409, 413, 415 | application/json |
| models/errors/ValidationErrorDto | 422 | application/json |
| models/errors/ErrorDto | 500 | application/json |
| models/errors/APIException | 4XX, 5XX | */* |
Fetches details of a specific workflow by its unique identifier workflowId
package hello.world;
import co.novu.Novu;
import co.novu.models.errors.ErrorDto;
import co.novu.models.errors.ValidationErrorDto;
import co.novu.models.operations.WorkflowControllerGetWorkflowResponse;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws ErrorDto, ValidationErrorDto, Exception {
Novu sdk = Novu.builder()
.secretKey("YOUR_SECRET_KEY_HERE")
.build();
WorkflowControllerGetWorkflowResponse res = sdk.workflows().workflowDetails()
.workflowId("<id>")
.call();
if (res.workflowResponseDto().isPresent()) {
System.out.println(res.workflowResponseDto().get());
}
}
}| Parameter | Type | Required | Description |
|---|---|---|---|
workflowId |
String | ✔️ | N/A |
environmentId |
Optional<String> | ➖ | N/A |
idempotencyKey |
Optional<String> | ➖ | A header for idempotency purposes |
WorkflowControllerGetWorkflowResponse
| Error Type | Status Code | Content Type |
|---|---|---|
| models/errors/ErrorDto | 414 | application/json |
| models/errors/ErrorDto | 400, 401, 403, 404, 405, 409, 413, 415 | application/json |
| models/errors/ValidationErrorDto | 422 | application/json |
| models/errors/ErrorDto | 500 | application/json |
| models/errors/APIException | 4XX, 5XX | */* |
Removes a specific workflow by its unique identifier workflowId
package hello.world;
import co.novu.Novu;
import co.novu.models.errors.ErrorDto;
import co.novu.models.errors.ValidationErrorDto;
import co.novu.models.operations.WorkflowControllerRemoveWorkflowResponse;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws ErrorDto, ValidationErrorDto, Exception {
Novu sdk = Novu.builder()
.secretKey("YOUR_SECRET_KEY_HERE")
.build();
WorkflowControllerRemoveWorkflowResponse res = sdk.workflows().delete()
.workflowId("<id>")
.call();
// handle response
}
}| Parameter | Type | Required | Description |
|---|---|---|---|
workflowId |
String | ✔️ | N/A |
idempotencyKey |
Optional<String> | ➖ | A header for idempotency purposes |
WorkflowControllerRemoveWorkflowResponse
| Error Type | Status Code | Content Type |
|---|---|---|
| models/errors/ErrorDto | 414 | application/json |
| models/errors/ErrorDto | 400, 401, 403, 404, 405, 409, 413, 415 | application/json |
| models/errors/ValidationErrorDto | 422 | application/json |
| models/errors/ErrorDto | 500 | application/json |
| models/errors/APIException | 4XX, 5XX | */* |
Partially updates a workflow by its unique identifier workflowId
package hello.world;
import co.novu.Novu;
import co.novu.models.components.PatchWorkflowDto;
import co.novu.models.errors.ErrorDto;
import co.novu.models.errors.ValidationErrorDto;
import co.novu.models.operations.WorkflowControllerPatchWorkflowResponse;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws ErrorDto, ValidationErrorDto, Exception {
Novu sdk = Novu.builder()
.secretKey("YOUR_SECRET_KEY_HERE")
.build();
WorkflowControllerPatchWorkflowResponse res = sdk.workflows().modify()
.workflowId("<id>")
.body(PatchWorkflowDto.builder()
.build())
.call();
if (res.workflowResponseDto().isPresent()) {
System.out.println(res.workflowResponseDto().get());
}
}
}| Parameter | Type | Required | Description |
|---|---|---|---|
workflowId |
String | ✔️ | N/A |
idempotencyKey |
Optional<String> | ➖ | A header for idempotency purposes |
body |
PatchWorkflowDto | ✔️ | Workflow patch details |
WorkflowControllerPatchWorkflowResponse
| Error Type | Status Code | Content Type |
|---|---|---|
| models/errors/ErrorDto | 414 | application/json |
| models/errors/ErrorDto | 400, 401, 403, 404, 405, 409, 413, 415 | application/json |
| models/errors/ValidationErrorDto | 422 | application/json |
| models/errors/ErrorDto | 500 | application/json |
| models/errors/APIException | 4XX, 5XX | */* |
Synchronizes a workflow to the target environment
package hello.world;
import co.novu.Novu;
import co.novu.models.components.SyncWorkflowDto;
import co.novu.models.errors.ErrorDto;
import co.novu.models.errors.ValidationErrorDto;
import co.novu.models.operations.WorkflowControllerSyncResponse;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws ErrorDto, ValidationErrorDto, Exception {
Novu sdk = Novu.builder()
.secretKey("YOUR_SECRET_KEY_HERE")
.build();
WorkflowControllerSyncResponse res = sdk.workflows().sync()
.workflowId("<id>")
.body(SyncWorkflowDto.builder()
.targetEnvironmentId("<id>")
.build())
.call();
if (res.workflowResponseDto().isPresent()) {
System.out.println(res.workflowResponseDto().get());
}
}
}| Parameter | Type | Required | Description |
|---|---|---|---|
workflowId |
String | ✔️ | N/A |
idempotencyKey |
Optional<String> | ➖ | A header for idempotency purposes |
body |
SyncWorkflowDto | ✔️ | Sync workflow details |
WorkflowControllerSyncResponse
| Error Type | Status Code | Content Type |
|---|---|---|
| models/errors/ErrorDto | 414 | application/json |
| models/errors/ErrorDto | 400, 401, 403, 404, 405, 409, 413, 415 | application/json |
| models/errors/ValidationErrorDto | 422 | application/json |
| models/errors/ErrorDto | 500 | application/json |
| models/errors/APIException | 4XX, 5XX | */* |