diff --git a/src/Vervis/Form/Ticket.hs b/src/Vervis/Form/Ticket.hs
index fcaf170..a9c0b1d 100644
--- a/src/Vervis/Form/Ticket.hs
+++ b/src/Vervis/Form/Ticket.hs
@@ -28,7 +28,7 @@ import Prelude
 
 import Control.Monad.IO.Class (liftIO)
 import Control.Monad.Trans.Class (lift)
-import Data.Maybe (catMaybes)
+import Data.Maybe (catMaybes, mapMaybe)
 import Data.Text (Text)
 import Data.Time.Calendar (Day (..))
 import Data.Time.Clock (getCurrentTime, UTCTime (..))
@@ -56,10 +56,11 @@ data NewTicket = NewTicket
     { ntTitle   :: Text
     , ntDesc    :: Text
     , ntTParams :: [(WorkflowFieldId, Text)]
+    , ntEParams :: [(WorkflowFieldId, WorkflowFieldEnumCtorId)]
     }
 
-tfieldSettings :: Text -> Bool -> FieldSettings App
-tfieldSettings name req =
+fieldSettings :: Text -> Bool -> FieldSettings App
+fieldSettings name req =
     fieldSettingsLabel $
     if req
         then name `T.snoc` '*'
@@ -67,28 +68,56 @@ tfieldSettings name req =
 
 tfield :: Entity WorkflowField -> AForm Handler (Maybe (WorkflowFieldId, Text))
 tfield (Entity fid f) =
-    let sets = tfieldSettings (workflowFieldName f) (workflowFieldRequired f)
+    let sets = fieldSettings (workflowFieldName f) (workflowFieldRequired f)
     in  fmap (fid, ) <$>
         if workflowFieldRequired f
             then Just <$> areq textField sets Nothing
             else aopt textField sets Nothing
 
+efield
+    :: Entity WorkflowField
+    -> Maybe (AForm Handler (Maybe (WorkflowFieldId, WorkflowFieldEnumCtorId)))
+efield (Entity fid f) =
+    case workflowFieldEnm f of
+        Nothing -> Nothing
+        Just eid -> Just $
+            let sets =
+                    fieldSettings
+                        (workflowFieldName f)
+                        (workflowFieldRequired f)
+                sel =
+                    selectField $
+                    optionsPersistKey
+                        [WorkflowFieldEnumCtorEnum ==. eid]
+                        []
+                        workflowFieldEnumCtorName
+            in  fmap (fid, ) <$>
+                if workflowFieldRequired f
+                    then Just <$> areq sel sets Nothing
+                    else aopt sel sets Nothing
+
 newTicketForm :: WorkflowId -> Form NewTicket
 newTicketForm wid html = do
-    tfs <-
-        lift $ runDB $
-        selectList
+    (tfs, efs) <- lift $ runDB $ do
+        tfs <- selectList
             [ WorkflowFieldWorkflow ==. wid
             , WorkflowFieldType     ==. WFTText
             , WorkflowFieldEnm      ==. Nothing
             ]
             []
+        efs <- selectList
+            [ WorkflowFieldWorkflow ==. wid
+            , WorkflowFieldType     ==. WFTEnum
+            ]
+            []
+        return (tfs, efs)
     flip renderDivs html $ NewTicket
         <$> areq textField "Title*" Nothing
         <*> ( maybe "" unTextarea <$>
               aopt textareaField "Description (Markdown)" Nothing
             )
         <*> (catMaybes <$> traverse tfield tfs)
+        <*> (fmap catMaybes $ sequenceA $ mapMaybe efield efs)
 
 editTicketContentAForm :: Ticket -> AForm Handler Ticket
 editTicketContentAForm ticket = Ticket
diff --git a/src/Vervis/Handler/Ticket.hs b/src/Vervis/Handler/Ticket.hs
index 25c88cc..5c9d4d8 100644
--- a/src/Vervis/Handler/Ticket.hs
+++ b/src/Vervis/Handler/Ticket.hs
@@ -149,12 +149,18 @@ postTicketsR shar proj = do
                         , ticketDiscuss  = did
                         }
                 tid <- insert ticket
-                let mkparam (fid, v) = TicketParamText
+                let mktparam (fid, v) = TicketParamText
                         { ticketParamTextTicket = tid
                         , ticketParamTextField  = fid
                         , ticketParamTextValue  = v
                         }
-                insertMany_ $ map mkparam $ ntTParams nt
+                insertMany_ $ map mktparam $ ntTParams nt
+                let mkeparam (fid, v) = TicketParamEnum
+                        { ticketParamEnumTicket = tid
+                        , ticketParamEnumField  = fid
+                        , ticketParamEnumValue  = v
+                        }
+                insertMany_ $ map mkeparam $ ntEParams nt
                 return $ ticketNumber ticket
             setMessage "Ticket created."
             redirect $ TicketR shar proj tnum