A powerful visual workflow designer for Zendesk Integration Services (ZIS) that allows you to create, edit, and manage complex automation workflows through an intuitive drag-and-drop interface.
ZIS.Workflow.Manager.mp4
- Visual Workflow Designer: Build workflows using a drag-and-drop canvas with React Flow
- ZIS Integration: Native support for Zendesk Integration Services with proper resource management
- Node Types Support: Action, Choice, Pass, Succeed, and Fail nodes
- Real-time: Instant feedback on workflow configuration
- Import/Export: Import existing workflows and export as ZIS-compatible JSON
- Action Management: Create and manage HTTP actions with connection configurations
- Theme Support: Light and dark mode with system preference detection
- Framework: Next.js 15 with TypeScript
- UI Library: React 18 with Radix UI components
- Styling: Tailwind CSS with custom animations
- Workflow Engine: React Flow for visual workflow management
- State Management: React hooks with local state
- Form Handling: React Hook Form with Zod validation
- Icons: Lucide React
- Development: ESLint, TypeScript, Turbopack
Before you begin, ensure you have the following installed:
- Node.js (version 20 or higher)
- npm or yarn
- Zendesk CLI (zcli) for Zendesk app development
-
Clone the repository:
git clone <repository-url> cd zis_workflow_manager
-
Install dependencies:
npm install
Run the development server with Zendesk CLI integration:
npm run dev:zcliThis command will:
- Generate the manifest file
- Start the Next.js development server on port 9002
- Start the Zendesk CLI apps server
- In the browser add "zcli_apps=true" and the app will run as a Navbar App.
Run just the Next.js development server:
npm run devImportant This is built keeping in mind to be used in zendesk apps interface (Navbar App). If you would like to use it as a standalone, please consider updating ZDClient.js files to use API with authentication.
Open http://localhost:9002 in your browser to see the application.
src/
├── app/ # Next.js app directory
│ ├── page.tsx # Main application page
│ ├── layout.tsx # Root layout component
│ └── globals.css # Global styles
├── components/ # React components
│ ├── layout/ # Layout-related components
│ ├── ui/ # Reusable UI components (Radix-based)
│ └── workflow/ # Workflow-specific components
├── hooks/ # Custom React hooks
├── lib/ # Utility functions and types
│ ├── types.ts # TypeScript type definitions
│ ├── workflow-utils.ts # Workflow processing utilities
│ └── sample-workflow.ts # Sample workflow data
└── translations/ # Internationalization files
- Action Node: Executes HTTP requests or other actions
- Choice Node: Conditional branching based on data evaluation
- Pass Node: Passes data through with optional transformations
- Succeed Node: Marks successful workflow completion
- Fail Node: Handles workflow failures with error details
- Visual Canvas: Drag-and-drop interface for building workflows
- Property Panels: Context-sensitive configuration panels
- Action Library: Manage reusable HTTP actions
- Import/Export: Full workflow serialization support
- Validation: Real-time workflow validation and error reporting
- Click "New Workflow" in the header
- Fill in the workflow details:
- Name and description
- JobSpec configuration
- Event source and type
- Start building your workflow on the canvas
- Click the "+" button on any edge to add a new node
- Select the node type (Action, Choice, Pass, etc.)
- Configure the node properties in the sidebar
- Click "Manage Actions" in the header
- Create new HTTP actions or edit existing ones
- Configure connection details, headers, and parameters
- Click "Export" in the header
- Choose your export format
- Save the generated ZIS-compatible JSON
npm run build:zcli- Build and package as Zendesk app This will build the app and output the contents inoutfolder. A zip of the app is created inout/tmp/to upload in zendesk instance.
This application is designed to work as a Zendesk app and integrates with:
- Zendesk Integration Services (ZIS): Native workflow execution
- Zendesk App Framework: Embedded app experience
- Zendesk CLI: Development and deployment tools
The app supports light and dark themes that automatically adapt to system preferences. You can customize themes by modifying the CSS variables in globals.css.
All UI components are built with Radix UI and can be customized through the components/ui/ directory. The design system is based on shadcn/ui patterns.
- Use the provided sample workflow as a starting point
- Leverage TypeScript for type safety with ZIS resources
- Follow the established component patterns for consistency
- Test workflows thoroughly before deployment
- Zendesk Integration Services Documentation
- React Flow Documentation
- Next.js Documentation
- Radix UI Documentation
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
For questions or support, contact: ashwin.shenoy@zendesk.com or skip@zendesk.com