Skip to main content

Project

A Project is the fundamental organizational unit in FlowOn Logic. It serves as a container that groups all related logic artifacts together—Logic Blocks, Flows, Recipes, Configurations, Localized Resources, Schedules, Service Connections, and Events that belong to the same business domain or problem area.

The Need for Organization

As your FlowOn Logic implementation grows, you'll create dozens or even hundreds of artifacts: formulas, decision tables, flows, validations, and more. Without proper organization, this quickly becomes unmanageable:

  • How do you find the logic related to order processing?
  • Which artifacts need to move together when deploying to production?
  • How do you ensure inventory logic doesn't accidentally reference unrelated customer service components?
  • Who is responsible for maintaining which pieces of logic?

The Solution: Project-Based Organization

Projects solve these challenges by providing a logical grouping mechanism that aligns with your business domains:

┌─────────────────────────────────────────────────────────────────────┐
│ PROJECT-BASED ORGANIZATION │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────┐ ┌─────────────────────┐ │
│ │ Order Management │ │ Customer Service │ │
│ │ Project │ │ Project │ │
│ ├─────────────────────┤ ├─────────────────────┤ │
│ │ • OrderValidation │ │ • CaseRouting │ │
│ │ • PricingCalculator │ │ • SLACalculator │ │
│ │ • DiscountRules │ │ • EscalationRules │ │
│ │ • OrderFlow │ │ • CaseFlow │ │
│ │ • OrderRecipe │ │ • CaseRecipe │ │
│ │ • OrderConfig │ │ • SupportConfig │ │
│ │ • OrderMessages │ │ • CaseMessages │ │
│ └─────────────────────┘ └─────────────────────┘ │
│ │
│ ┌─────────────────────┐ ┌─────────────────────┐ │
│ │ Inventory │ │ Integration │ │
│ │ Project │ │ Project │ │
│ ├─────────────────────┤ ├─────────────────────┤ │
│ │ • StockCalculator │ │ • ERPConnection │ │
│ │ • ReorderRules │ │ • ShippingConnection│ │
│ │ • InventoryFlow │ │ • PaymentConnection │ │
│ │ • StockRecipe │ │ • SyncSchedule │ │
│ │ • WarehouseConfig │ │ • IntegrationConfig │ │
│ └─────────────────────┘ └─────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘

Project Structure

PropertyRequiredDescription
NameYesUnique identifier for the project (e.g., "OrderManagement", "CustomerService")
CRM SolutionYesThe Dynamics 365 solution this project is associated with
DescriptionNoDocumentation explaining the project's purpose and scope

CRM Solution Association

Every Project is linked to a Dynamics 365 Solution. This association is crucial because:

  1. Deployment Alignment: FlowOn artifacts align with your existing Dynamics 365 solution strategy
  2. Dependency Management: The CRM solution defines the entities and components available to your logic
  3. Environment Movement: Solutions are the standard mechanism for moving customizations between environments

Artifacts Within a Project

When you create any FlowOn artifact, you assign it to a Project. This establishes ownership and organizational context:

Artifact TypeDescription
Logic BlocksFormulas, Decision Tables, Decision Trees, Validations, Validation Sets
Logic FlowsAutomation workflows with steps
Business ProcessesMulti-stage processes with phases and steps (see FlowOn BPM)
RecipesEntity event handlers (Create, Update, Delete)
Localized ResourcesMulti-language string definitions
ConfigurationsGlobal variables and settings
SchedulesTime-based flow execution
Service ConnectionsExternal REST API integrations
Event DefinitionsCustom business events
Event HandlersEvent subscribers
InstancesRuntime records of Business Process and Flow executions
APIsExposed endpoints for external consumption (see FlowOn API)

Runtime Artifacts: Instances

While most artifacts are design-time definitions, Instances are runtime records that capture actual executions:

Instance TypeDescription
Business Process InstanceA running or completed execution of a Business Process for a specific record
Flow InstanceA record of a Logic Flow execution, including inputs, outputs, and step results

Instances provide:

  • Execution History: Track what ran, when, and with what data
  • Debugging: Investigate failures by examining step-by-step execution
  • Auditing: Maintain records of automated actions for compliance
  • Monitoring: View in-progress executions and their status

Packaging and Deployment: FLoP Files

One of the most powerful benefits of Projects is packaging. FlowOn Logic can export a Project and all its artifacts into a FLoP file (FlowOn Logic Package). This package contains:

  • All Logic Blocks in the project
  • All Logic Flows
  • All Business Processes
  • All Recipes
  • All Configurations
  • All Localized Resources
  • All Schedules
  • All Service Connections (credentials excluded for security)
  • All Event Definitions and Handlers
  • All API definitions
  • Metadata about dependencies and relationships

Note: Instances are not included in FLoP exports—they are runtime data specific to each environment.

FLoP File Benefits

┌─────────────────────────────────────────────────────────────────────┐
│ FLoP FILE WORKFLOW │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ DEVELOPMENT PACKAGE PRODUCTION │
│ ENVIRONMENT (FLoP) ENVIRONMENT │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Project │ │ │ │ Project │ │
│ │ ───────── │ │ OrderMgmt │ │ ───────── │ │
│ │ • Blocks │ ───► │ .flop │ ───► │ • Blocks │ │
│ │ • Flows │ EXPORT│ │ IMPORT│ • Flows │ │
│ │ • Recipes │ │ Contains: │ │ • Recipes │ │
│ │ • Configs │ │ - 15 Blocks│ │ • Configs │ │
│ │ • Resources │ │ - 8 Flows │ │ • Resources │ │
│ │ • Schedules │ │ - 3 Recipes│ │ • Schedules │ │
│ └─────────────┘ │ - 2 Configs│ └─────────────┘ │
│ │ - 1 Sched │ │
│ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
BenefitDescription
Complete PackagingAll related artifacts move together—no missing dependencies
Version ControlFLoP files can be stored in source control, versioned, and tracked
Environment PortabilityMove logic between Development, Test, UAT, and Production
Backup & RecoveryExport projects as backup before making major changes
Sharing & ReuseShare packaged solutions between teams or organizations
Consistent DeploymentSame package deploys identically across environments

Export and Import Process

Exporting a Project:

  1. Select the Project to export
  2. FlowOn Logic gathers all artifacts belonging to the project
  3. Artifacts are serialized into FLoP format
  4. Sensitive data (credentials, API keys) are excluded
  5. FLoP file is generated for download

Importing a Project:

  1. Select the FLoP file to import
  2. FlowOn Logic validates the package contents
  3. Target CRM Solution is verified or specified
  4. Artifacts are created/updated in the target environment
  5. Service Connection credentials must be reconfigured
  6. Import report shows what was created/updated

Example Projects

E-Commerce Project

Project: E-Commerce
CRM Solution: ECommerceCustomizations
Description: "All logic related to online order processing, pricing, and fulfillment"

Artifacts:
┌──────────────────────────────────────────────────────────────────────┐
│ LOGIC BLOCKS │
├──────────────────────────────────────────────────────────────────────┤
│ • OrderTotalCalculator (Formula) │
│ • DiscountRules (Decision Table) │
│ • ShippingCostCalculator (Formula) │
│ • TaxCalculator (Formula) │
│ • OrderValidation (Validation Set) │
│ • FraudRiskAssessment (Decision Tree) │
├──────────────────────────────────────────────────────────────────────┤
│ LOGIC FLOWS │
├──────────────────────────────────────────────────────────────────────┤
│ • ProcessNewOrder │
│ • ProcessRefund │
│ • SendOrderConfirmation │
│ • UpdateInventoryOnOrder │
│ • GenerateInvoice │
├──────────────────────────────────────────────────────────────────────┤
│ BUSINESS PROCESSES │
├──────────────────────────────────────────────────────────────────────┤
│ • OrderFulfillmentProcess (4 phases: Validation → Payment → │
│ Fulfillment → Shipping) │
│ • ReturnProcess (3 phases: Request → Review → Resolution) │
├──────────────────────────────────────────────────────────────────────┤
│ RECIPES │
├──────────────────────────────────────────────────────────────────────┤
│ • OrderRecipe (Order entity: Create, Update) │
│ • OrderLineRecipe (Order Line entity: Create, Update, Delete) │
├──────────────────────────────────────────────────────────────────────┤
│ CONFIGURATIONS │
├──────────────────────────────────────────────────────────────────────┤
│ • OrderSettings (FreeShippingThreshold, MaxOrderAmount, TaxRate) │
├──────────────────────────────────────────────────────────────────────┤
│ LOCALIZED RESOURCES │
├──────────────────────────────────────────────────────────────────────┤
│ • OrderMessages (Confirmation, Error messages in 5 languages) │
│ • InvoiceText (Invoice labels and content) │
├──────────────────────────────────────────────────────────────────────┤
│ SERVICE CONNECTIONS │
├──────────────────────────────────────────────────────────────────────┤
│ • StripePayments │
│ • ShippoShipping │
├──────────────────────────────────────────────────────────────────────┤
│ EVENTS │
├──────────────────────────────────────────────────────────────────────┤
│ • OrderPlaced (Event Definition + 5 Handlers) │
│ • OrderShipped (Event Definition + 3 Handlers) │
│ • RefundProcessed (Event Definition + 2 Handlers) │
├──────────────────────────────────────────────────────────────────────┤
│ SCHEDULES │
├──────────────────────────────────────────────────────────────────────┤
│ • DailyOrderReport (Daily at 6 AM) │
│ • AbandonedCartReminder (Hourly) │
├──────────────────────────────────────────────────────────────────────┤
│ APIS │
├──────────────────────────────────────────────────────────────────────┤
│ • OrderAPI (CreateOrder, GetOrderStatus, CancelOrder endpoints) │
│ • InventoryAPI (CheckStock, ReserveStock endpoints) │
└──────────────────────────────────────────────────────────────────────┘

Exported as: E-Commerce_v2.3.flop (contains 42 artifacts)

HR Onboarding Project

Project: HROnboarding
CRM Solution: HRManagement
Description: "Employee onboarding workflows, validations, and automations"

Artifacts:
┌──────────────────────────────────────────────────────────────────────┐
│ LOGIC BLOCKS │
├──────────────────────────────────────────────────────────────────────┤
│ • EmployeeValidation (Validation Set) │
│ • DepartmentAssignment (Decision Table) │
│ • BenefitsEligibility (Decision Tree) │
│ • ProbationEndCalculator (Formula) │
├──────────────────────────────────────────────────────────────────────┤
│ LOGIC FLOWS │
├──────────────────────────────────────────────────────────────────────┤
│ • CreateEmployeeRecord │
│ • AssignOnboardingTasks │
│ • ProvisionSystemAccess │
│ • SendWelcomePackage │
│ • ScheduleOrientationMeetings │
├──────────────────────────────────────────────────────────────────────┤
│ BUSINESS PROCESSES │
├──────────────────────────────────────────────────────────────────────┤
│ • EmployeeOnboardingProcess (5 phases: Documentation → IT Setup → │
│ Training → Team Introduction → Review) │
├──────────────────────────────────────────────────────────────────────┤
│ RECIPES │
├──────────────────────────────────────────────────────────────────────┤
│ • EmployeeRecipe (Employee entity: Create, Update) │
├──────────────────────────────────────────────────────────────────────┤
│ CONFIGURATIONS │
├──────────────────────────────────────────────────────────────────────┤
│ • OnboardingSettings (ProbationDays, DefaultBenefitsStart) │
├──────────────────────────────────────────────────────────────────────┤
│ LOCALIZED RESOURCES │
├──────────────────────────────────────────────────────────────────────┤
│ • OnboardingMessages (Welcome emails, task descriptions) │
├──────────────────────────────────────────────────────────────────────┤
│ SERVICE CONNECTIONS │
├──────────────────────────────────────────────────────────────────────┤
│ • ActiveDirectoryAPI │
│ • PayrollSystem │
├──────────────────────────────────────────────────────────────────────┤
│ EVENTS │
├──────────────────────────────────────────────────────────────────────┤
│ • EmployeeHired (Event Definition + 4 Handlers) │
│ • ProbationCompleted (Event Definition + 2 Handlers) │
├──────────────────────────────────────────────────────────────────────┤
│ SCHEDULES │
├──────────────────────────────────────────────────────────────────────┤
│ • ProbationReviewReminder (Daily - checks for upcoming reviews) │
└──────────────────────────────────────────────────────────────────────┘

Exported as: HROnboarding_v1.5.flop (contains 24 artifacts)

Best Practices

Align with Business Domains: Create projects that map to your business domains (Sales, Service, Finance, HR) rather than technical categories. This makes it easier for business users to find relevant logic.

One Domain, One Project: Avoid creating overly granular projects. A single "Order Management" project is better than separate "Order Validation", "Order Pricing", and "Order Fulfillment" projects if they're tightly related.

Match CRM Solutions: Align your FlowOn Projects with your Dynamics 365 solution structure. If you have a "SalesCustomizations" solution, have a corresponding "Sales" FlowOn project.

Use Descriptive Names: Project names should be clear and meaningful: "CustomerOnboarding", "InventoryManagement", "FinancialReporting" rather than "Project1" or "Misc".

Document Project Scope: Use the description field to clearly define what belongs in the project and what doesn't. This helps team members know where to place new artifacts.

Version Your Exports: Include version numbers in FLoP file names (e.g., "ECommerce_v2.3.flop") to track what has been deployed where.

Export Before Major Changes: Always export a project before making significant modifications. This provides a rollback point if needed.

Review Dependencies: Before importing a FLoP file, ensure the target environment has the required CRM solution and any cross-project dependencies.

Reconfigure Credentials: After importing, always reconfigure Service Connection credentials—they are intentionally excluded from exports for security.

Keep Projects Focused: If a project grows too large (50+ artifacts), consider whether it should be split into more focused projects.