diff --git a/plugins/tapd/models/story_changelog.go b/plugins/tapd/models/story_changelog.go
index 28f58a3..1a04c6f 100644
--- a/plugins/tapd/models/story_changelog.go
+++ b/plugins/tapd/models/story_changelog.go
@@ -45,6 +45,8 @@
 	Field             string          `json:"field" gorm:"primaryKey;type:varchar(255)"`
 	ValueBeforeParsed json.RawMessage `json:"value_before_parsed"`
 	ValueAfterParsed  json.RawMessage `json:"value_after_parsed"`
+	ValueBefore       json.RawMessage `json:"value_before"`
+	ValueAfter        json.RawMessage `json:"value_after"`
 	IterationIdFrom   uint64
 	IterationIdTo     uint64
 	common.NoPKModel
diff --git a/plugins/tapd/models/task_changelog.go b/plugins/tapd/models/task_changelog.go
index 5177c85..29df87e 100644
--- a/plugins/tapd/models/task_changelog.go
+++ b/plugins/tapd/models/task_changelog.go
@@ -58,6 +58,8 @@
 	Field             string          `json:"field" gorm:"primaryKey;type:varchar(255)"`
 	ValueBeforeParsed json.RawMessage `json:"value_before_parsed"`
 	ValueAfterParsed  json.RawMessage `json:"value_after_parsed"`
+	ValueBefore       json.RawMessage `json:"value_before"`
+	ValueAfter        json.RawMessage `json:"value_after"`
 	IterationIdFrom   uint64
 	IterationIdTo     uint64
 	common.NoPKModel
diff --git a/plugins/tapd/tasks/story_changelog_extractor.go b/plugins/tapd/tasks/story_changelog_extractor.go
index 5fd17cd..64ce088 100644
--- a/plugins/tapd/tasks/story_changelog_extractor.go
+++ b/plugins/tapd/tasks/story_changelog_extractor.go
@@ -56,22 +56,39 @@
 			for _, fc := range storyChangelog.FieldChanges {
 				var item models.TapdStoryChangelogItem
 				var valueAfterMap interface{}
-				if err = json.Unmarshal(fc.ValueAfterParsed, &valueAfterMap); err != nil {
-					return nil, err
+				var valueBeforeMap interface{}
+				if fc.ValueAfterParsed == nil {
+					if err = json.Unmarshal(fc.ValueAfter, &valueAfterMap); err != nil {
+						return nil, err
+					}
+				} else {
+					if err = json.Unmarshal(fc.ValueAfterParsed, &valueAfterMap); err != nil {
+						return nil, err
+					}
+				}
+				if fc.ValueBeforeParsed == nil {
+					if err = json.Unmarshal(fc.ValueBefore, &valueBeforeMap); err != nil {
+						return nil, err
+					}
+				} else {
+					if err = json.Unmarshal(fc.ValueBeforeParsed, &valueBeforeMap); err != nil {
+						return nil, err
+					}
 				}
 				switch valueAfterMap.(type) {
 				case map[string]interface{}:
-					valueBeforeMap := map[string]string{}
-					err = json.Unmarshal(fc.ValueBeforeParsed, &valueBeforeMap)
-					if err != nil {
-						return nil, err
-					}
 					for k, v := range valueAfterMap.(map[string]interface{}) {
 						item.ConnectionId = data.Options.ConnectionId
 						item.ChangelogId = storyChangelog.Id
 						item.Field = k
 						item.ValueAfterParsed = v.(string)
-						item.ValueBeforeParsed = valueBeforeMap[k]
+						switch valueBeforeMap.(type) {
+						case map[string]interface{}:
+							item.ValueBeforeParsed = valueBeforeMap.(map[string]interface{})[k].(string)
+						default:
+							item.ValueBeforeParsed = valueBeforeMap.(string)
+						}
+						results = append(results, &item)
 					}
 				default:
 					item.ConnectionId = data.Options.ConnectionId
diff --git a/plugins/tapd/tasks/task_changelog_extractor.go b/plugins/tapd/tasks/task_changelog_extractor.go
index a081d2c..a6d381e 100644
--- a/plugins/tapd/tasks/task_changelog_extractor.go
+++ b/plugins/tapd/tasks/task_changelog_extractor.go
@@ -56,23 +56,39 @@
 			for _, fc := range taskChangelog.FieldChanges {
 				var item models.TapdTaskChangelogItem
 				var valueAfterMap interface{}
-				if err = json.Unmarshal(fc.ValueAfterParsed, &valueAfterMap); err != nil {
-					return nil, err
+				var valueBeforeMap interface{}
+				if fc.ValueAfterParsed == nil {
+					if err = json.Unmarshal(fc.ValueAfter, &valueAfterMap); err != nil {
+						return nil, err
+					}
+				} else {
+					if err = json.Unmarshal(fc.ValueAfterParsed, &valueAfterMap); err != nil {
+						return nil, err
+					}
+				}
+				if fc.ValueBeforeParsed == nil {
+					if err = json.Unmarshal(fc.ValueBefore, &valueBeforeMap); err != nil {
+						return nil, err
+					}
+				} else {
+					if err = json.Unmarshal(fc.ValueBeforeParsed, &valueBeforeMap); err != nil {
+						return nil, err
+					}
 				}
 				switch valueAfterMap.(type) {
 				case map[string]interface{}:
-					valueBeforeMap := map[string]string{}
-					err = json.Unmarshal(fc.ValueBeforeParsed, &valueBeforeMap)
-					if err != nil {
-						return nil, err
-					}
 					for k, v := range valueAfterMap.(map[string]interface{}) {
 						item.ConnectionId = data.Options.ConnectionId
 						item.ChangelogId = taskChangelog.Id
 						item.Field = k
 						item.ValueAfterParsed = v.(string)
-						item.ValueBeforeParsed = valueBeforeMap[k]
-						results = append(results, item)
+						switch valueBeforeMap.(type) {
+						case map[string]interface{}:
+							item.ValueBeforeParsed = valueBeforeMap.(map[string]interface{})[k].(string)
+						default:
+							item.ValueBeforeParsed = valueBeforeMap.(string)
+						}
+						results = append(results, &item)
 					}
 				default:
 					item.ConnectionId = data.Options.ConnectionId
