Skip to content

Latest commit

 

History

History
371 lines (275 loc) · 20.8 KB

File metadata and controls

371 lines (275 loc) · 20.8 KB

Workflows

Overview

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

Available Operations

  • Create - Create a workflow
  • List - List all workflows
  • Update - Update a workflow
  • Get - Retrieve a workflow
  • Delete - Delete a workflow
  • Patch - Update a workflow
  • Sync - Sync a workflow

Create

Creates a new workflow in the Novu Cloud environment

Example Usage

using Novu;
using Novu.Models.Components;
using System.Collections.Generic;

var sdk = new NovuSDK(secretKey: "YOUR_SECRET_KEY_HERE");

var res = await sdk.Workflows.CreateAsync(createWorkflowDto: new CreateWorkflowDto() {
    Name = "<value>",
    WorkflowId = "<id>",
    Steps = new List<Novu.Models.Components.Steps>() {},
    Preferences = new PreferencesRequestDto() {
        User = User.CreateUserWorkflowPreferencesDto(
            new UserWorkflowPreferencesDto() {
                All = UserAll.CreateWorkflowPreferenceDto(
                    new WorkflowPreferenceDto() {}
                ),
                Channels = new Dictionary<string, ChannelPreferenceDto>() {
                    { "email", new ChannelPreferenceDto() {} },
                    { "sms", new ChannelPreferenceDto() {
                        Enabled = false,
                    } },
                },
            }
        ),
        Workflow = new PreferencesRequestDtoWorkflow() {
            All = PreferencesRequestDtoAll.CreateWorkflowPreferenceDto(
                new WorkflowPreferenceDto() {}
            ),
            Channels = new Dictionary<string, ChannelPreferenceDto>() {
                { "email", new ChannelPreferenceDto() {} },
                { "sms", new ChannelPreferenceDto() {
                    Enabled = false,
                } },
            },
        },
    },
});

// handle response

Parameters

Parameter Type Required Description
CreateWorkflowDto CreateWorkflowDto ✔️ Workflow creation details
IdempotencyKey string A header for idempotency purposes

Response

WorkflowControllerCreateResponse

Errors

Error Type Status Code Content Type
Novu.Models.Errors.ErrorDto 414 application/json
Novu.Models.Errors.ErrorDto 400, 401, 403, 404, 405, 409, 413, 415 application/json
Novu.Models.Errors.ValidationErrorDto 422 application/json
Novu.Models.Errors.ErrorDto 500 application/json
Novu.Models.Errors.APIException 4XX, 5XX */*

List

Retrieves a list of workflows with optional filtering and pagination

Example Usage

using Novu;
using Novu.Models.Components;
using Novu.Models.Requests;

var sdk = new NovuSDK(secretKey: "YOUR_SECRET_KEY_HERE");

WorkflowControllerSearchWorkflowsRequest req = new WorkflowControllerSearchWorkflowsRequest() {
    Limit = 10D,
    Offset = 0D,
};

var res = await sdk.Workflows.ListAsync(req);

// handle response

Parameters

Parameter Type Required Description
request WorkflowControllerSearchWorkflowsRequest ✔️ The request object to use for the request.

Response

WorkflowControllerSearchWorkflowsResponse

Errors

Error Type Status Code Content Type
Novu.Models.Errors.ErrorDto 414 application/json
Novu.Models.Errors.ErrorDto 400, 401, 403, 404, 405, 409, 413, 415 application/json
Novu.Models.Errors.ValidationErrorDto 422 application/json
Novu.Models.Errors.ErrorDto 500 application/json
Novu.Models.Errors.APIException 4XX, 5XX */*

Update

Updates the details of an existing workflow, here workflowId is the identifier of the workflow

Example Usage

using Novu;
using Novu.Models.Components;
using System.Collections.Generic;

var sdk = new NovuSDK(secretKey: "YOUR_SECRET_KEY_HERE");

var res = await sdk.Workflows.UpdateAsync(
    workflowId: "<id>",
    updateWorkflowDto: new UpdateWorkflowDto() {
        Name = "<value>",
        Steps = new List<UpdateWorkflowDtoSteps>() {},
        Preferences = new PreferencesRequestDto() {
            User = User.CreateUserWorkflowPreferencesDto(
                new UserWorkflowPreferencesDto() {
                    All = UserAll.CreateWorkflowPreferenceDto(
                        new WorkflowPreferenceDto() {}
                    ),
                    Channels = new Dictionary<string, ChannelPreferenceDto>() {
                        { "email", new ChannelPreferenceDto() {} },
                        { "sms", new ChannelPreferenceDto() {
                            Enabled = false,
                        } },
                    },
                }
            ),
            Workflow = new PreferencesRequestDtoWorkflow() {
                All = PreferencesRequestDtoAll.CreateWorkflowPreferenceDto(
                    new WorkflowPreferenceDto() {}
                ),
                Channels = new Dictionary<string, ChannelPreferenceDto>() {
                    { "email", new ChannelPreferenceDto() {} },
                    { "sms", new ChannelPreferenceDto() {
                        Enabled = false,
                    } },
                },
            },
        },
        Origin = ResourceOriginEnum.External,
    }
);

// handle response

Parameters

Parameter Type Required Description
WorkflowId string ✔️ N/A
UpdateWorkflowDto UpdateWorkflowDto ✔️ Workflow update details
IdempotencyKey string A header for idempotency purposes

Response

WorkflowControllerUpdateResponse

Errors

Error Type Status Code Content Type
Novu.Models.Errors.ErrorDto 414 application/json
Novu.Models.Errors.ErrorDto 400, 401, 403, 404, 405, 409, 413, 415 application/json
Novu.Models.Errors.ValidationErrorDto 422 application/json
Novu.Models.Errors.ErrorDto 500 application/json
Novu.Models.Errors.APIException 4XX, 5XX */*

Get

Fetches details of a specific workflow by its unique identifier workflowId

Example Usage

using Novu;
using Novu.Models.Components;

var sdk = new NovuSDK(secretKey: "YOUR_SECRET_KEY_HERE");

var res = await sdk.Workflows.GetAsync(workflowId: "<id>");

// handle response

Parameters

Parameter Type Required Description
WorkflowId string ✔️ N/A
EnvironmentId string N/A
IdempotencyKey string A header for idempotency purposes

Response

WorkflowControllerGetWorkflowResponse

Errors

Error Type Status Code Content Type
Novu.Models.Errors.ErrorDto 414 application/json
Novu.Models.Errors.ErrorDto 400, 401, 403, 404, 405, 409, 413, 415 application/json
Novu.Models.Errors.ValidationErrorDto 422 application/json
Novu.Models.Errors.ErrorDto 500 application/json
Novu.Models.Errors.APIException 4XX, 5XX */*

Delete

Removes a specific workflow by its unique identifier workflowId

Example Usage

using Novu;
using Novu.Models.Components;

var sdk = new NovuSDK(secretKey: "YOUR_SECRET_KEY_HERE");

var res = await sdk.Workflows.DeleteAsync(workflowId: "<id>");

// handle response

Parameters

Parameter Type Required Description
WorkflowId string ✔️ N/A
IdempotencyKey string A header for idempotency purposes

Response

WorkflowControllerRemoveWorkflowResponse

Errors

Error Type Status Code Content Type
Novu.Models.Errors.ErrorDto 414 application/json
Novu.Models.Errors.ErrorDto 400, 401, 403, 404, 405, 409, 413, 415 application/json
Novu.Models.Errors.ValidationErrorDto 422 application/json
Novu.Models.Errors.ErrorDto 500 application/json
Novu.Models.Errors.APIException 4XX, 5XX */*

Patch

Partially updates a workflow by its unique identifier workflowId

Example Usage

using Novu;
using Novu.Models.Components;

var sdk = new NovuSDK(secretKey: "YOUR_SECRET_KEY_HERE");

var res = await sdk.Workflows.PatchAsync(
    workflowId: "<id>",
    patchWorkflowDto: new PatchWorkflowDto() {}
);

// handle response

Parameters

Parameter Type Required Description
WorkflowId string ✔️ N/A
PatchWorkflowDto PatchWorkflowDto ✔️ Workflow patch details
IdempotencyKey string A header for idempotency purposes

Response

WorkflowControllerPatchWorkflowResponse

Errors

Error Type Status Code Content Type
Novu.Models.Errors.ErrorDto 414 application/json
Novu.Models.Errors.ErrorDto 400, 401, 403, 404, 405, 409, 413, 415 application/json
Novu.Models.Errors.ValidationErrorDto 422 application/json
Novu.Models.Errors.ErrorDto 500 application/json
Novu.Models.Errors.APIException 4XX, 5XX */*

Sync

Synchronizes a workflow to the target environment

Example Usage

using Novu;
using Novu.Models.Components;

var sdk = new NovuSDK(secretKey: "YOUR_SECRET_KEY_HERE");

var res = await sdk.Workflows.SyncAsync(
    workflowId: "<id>",
    syncWorkflowDto: new SyncWorkflowDto() {
        TargetEnvironmentId = "<id>",
    }
);

// handle response

Parameters

Parameter Type Required Description
WorkflowId string ✔️ N/A
SyncWorkflowDto SyncWorkflowDto ✔️ Sync workflow details
IdempotencyKey string A header for idempotency purposes

Response

WorkflowControllerSyncResponse

Errors

Error Type Status Code Content Type
Novu.Models.Errors.ErrorDto 414 application/json
Novu.Models.Errors.ErrorDto 400, 401, 403, 404, 405, 409, 413, 415 application/json
Novu.Models.Errors.ValidationErrorDto 422 application/json
Novu.Models.Errors.ErrorDto 500 application/json
Novu.Models.Errors.APIException 4XX, 5XX */*