Skip to content

Commit b93c2a4

Browse files
authored
Merge pull request #112 from umbraco/bugfix/v14/activecampaign-workflow-retry
Fix ActiveCampaign retry workflow issue
2 parents 6210397 + 2aa6e9d commit b93c2a4

File tree

2 files changed

+29
-6
lines changed

2 files changed

+29
-6
lines changed

src/Umbraco.Forms.Integrations.Crm.ActiveCampaign/ActiveCampaignContactsWorkflow.cs

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,14 @@ public override async Task<WorkflowExecutionStatus> ExecuteAsync(WorkflowExecuti
5959
{
6060
var mappings = JsonSerializer.Deserialize<List<ContactMappingDto>>(ContactMappings);
6161

62-
var email = context.Record.RecordFields[Guid.Parse(mappings.First(p => p.ContactField == "email").FormField.Id)]
63-
.ValuesAsString();
62+
string email = ReadMappingValue(context.Record, mappings, "email");
63+
64+
if (string.IsNullOrEmpty(email))
65+
{
66+
_logger.LogWarning("Email not set for the record!");
67+
return WorkflowExecutionStatus.Failed;
68+
}
69+
6470

6571
// Check if contact exists.
6672
var contacts = await _contactService.Get(email);
@@ -153,11 +159,28 @@ private ContactDto Build(Record record)
153159

154160
private string ReadMappingValue(Record record, List<ContactMappingDto> mappings, string name)
155161
{
162+
string value = string.Empty;
163+
156164
var mappingItem = mappings.FirstOrDefault(p => p.ContactField == name);
157165

158-
return mappingItem != null
159-
? record.RecordFields[Guid.Parse(mappingItem.FormField.Id)].ValuesAsString()
160-
: string.Empty;
166+
if (mappingItem != null)
167+
{
168+
var key = Guid.Parse(mappingItem.FormField.Id);
169+
if (!record.RecordFields.ContainsKey(key))
170+
{
171+
var matchedField = record.RecordFields.FirstOrDefault(x => x.Value.FieldId == key);
172+
if (matchedField.Value != null)
173+
{
174+
value = matchedField.Value.ValuesAsString();
175+
}
176+
}
177+
else
178+
{
179+
value = record.RecordFields[key].ValuesAsString();
180+
}
181+
}
182+
183+
return value;
161184
}
162185
}
163186
}

src/Umbraco.Forms.Integrations.Crm.ActiveCampaign/Umbraco.Forms.Integrations.Crm.ActiveCampaign.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<PackageIconUrl></PackageIconUrl>
1717
<PackageProjectUrl>https://github.com/umbraco/Umbraco.Forms.Integrations/tree/main-v10/src/Umbraco.Forms.Integrations.Crm.ActiveCampaign</PackageProjectUrl>
1818
<RepositoryUrl>https://github.com/umbraco/Umbraco.Forms.Integrations</RepositoryUrl>
19-
<Version>3.0.0</Version>
19+
<Version>3.0.1</Version>
2020
<Authors>Umbraco HQ</Authors>
2121
<Company>Umbraco</Company>
2222
<PackageTags>Umbraco;Umbraco-Marketplace</PackageTags>

0 commit comments

Comments
 (0)