Hope that anyone encountered this issue, as I'm guessing not much people are working with this API.
I created an outbound campaign using the API, and I tried to import records to it.
I was able to do that, but I had an issue, when I'm trying to load records when Phone02 is empty, it won't let me import those records.
The output I'm getting is:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <apiErrors> <apiError> <errorData>fileContent</errorData> <errorDetail xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="bulkCsvErrorDetail"> <column>5</column> <error> <errorData>Phone02</errorData> <errorMessage>The format of this field is incorrect. Valid characters are 0-9, #, and *.</errorMessage> <errorType>invalidInput.invalidChars</errorType> </error> <line>2</line> </errorDetail> <errorType>invalidInput.bulk.invalidFileContent</errorType> </apiError> </apiErrors>
This is how I'm trying to import:
<import> <fileContent> <![CDATA[ AccountNumber,FirstName,LastName,Phone01,Phone02,TimeZoneBias,DstObserved LwxbZcYdVQGpyYDUYu4WRK3QQVSe4,Name,LastName,12126186597,,, ]]> </fileContent> <delimiter>,</delimiter> </import>
Only when I'm inserting a value in Phone02 it will import the record via API.
Now I understand that when creating an outbound campaign using the API, it also generates automatically an import rule for it. And after viewing a table called Import_Rule_Clause, I see that there's only one record generated for this specific campaign and it is Phone01, so I'm guessing because it has no Phone02 in there that is stating 'NullEnabled' (field) = 'Y', so the API won't be able to bypass that.
Of course I will not add manually a record for this campaign with Phone02 to the above table, as it'll may crash my system as it is not allowed.
Is there something I can do here?
I haven't worked on outbound APIs, so would not comment on that, but dont you have access to Configuration Manager where you can review Query and Import rules ?
I wish it was that easy. But when creating an outbound campaign using the API, it is making those objects invisible to the Configuration Manager.
Not only that, but they are stating that using Outbound API methods, like delete / update / etc, can be used only on campaigns created by the API and not by the configuration manager. I don't know why they did it, but this is STUPID.
Anyway, if I'm looking on the import rule itself in the database, I can see a field called 'APIGenerated' and it is set to 'Y'. So all the import rules that are set to 'Y' are invisible to the configuration manager (and the campaign and query rule).
At one of the presentations on this tool, we suggested that those items created by the API at least be visible in Configuration Manager, even if they were read only. This would allow maintenance personnel and anyone else to know to look in one place for the items. I don't know if it was added to any type of road map, unfortunately. I imagine it is the same scenario with PCCE and the single pane of glass (SPOG) where API is visble to API only and things created in the SPOG are only editable via SPOG?