© 2015 X2Engine Inc.
Frequently Asked Questions
Contents
API
Contacts
I made a contact through the API. Why doesn't the assignedTo field get set according to lead routing rules?
When creating records through the API, all fields must be explicitly defined. One can, however, obtain an assignee for a new contact that is distributed according to lead routing type via the public "getLeadRoutingType" action of AdminController. An example of this can be found in APIModel (which is a class that was written for the express purpose of creating contacts and other records via the API).
Why doesn't the "Record Created" X2Flow trigger fire when creating a contact via API?
Note, the data submitted to the server should not contain the "createDate" field. If it does not, the field will be automatically set to the current timestamp at record insertion, and the "Record Created" trigger will be activated. Otherwise, it is assumed that a data import of some sort is happening, because a non-empty creation date implies that it was created on some other system first. In the latter case, the record created trigger will not be activated, and the field will not be automatically set.
Why doesn't the "Web Lead" X2Flow trigger fire when creating a web lead via API?
The "create" API method, intended as a generic method for creating records, cannot assume that it is being used for creating a web lead in particular. One might choose instead to create a flow triggered by record creation and add the criteria that the lead type must be "Web", and set the lead type to "Web" in the submission to the API, which be practically the same as having the web lead trigger activate in the API.
Customization
Custom fields
I made a custom field and it doesn't show up. Now what?
Once you create a field, you must add it to the view and form as you see fit, as follows:
- Go to "Admin"
- Scroll down to the section "Utilities"
- Go to "Form Editor"
- Open the views/forms for the model by selecting the model from the "Model" dropdown
- Select "Form (Default)" from the "Version" dropdown
- Drag and drop the custom field into the form where it is desired.
- Hit "Save"
- Repeat the process with the "View" to change the record view page for the model type.
Why isn't any data going into my custom field getting saved?
If this occurs for a user that has been assigned any role, you will need to add permissions to that field for the role:
- Go to the "Role Manager" in Admin.
- Select the role to be edited from the dropdown menu.
- Under "View" and "Edit" permissions, click the "+" sign next to the field in the right panels to add them.
- Click "Save".
Custom modules
Why don't I see anything when I go to create/view a record in a new custom module?
The first step after creating a custom module is designing a form and view for it. To do so:
- Go to "Admin"
- Scroll down to the section "Utilities"
- Go to "Form Editor"
- Open the views/forms for the model corresponding to the new module by selecting it from the "Model" dropdown
- Select "Form (Default)" from the "Version" dropdown
- Drag and drop the custom field into the form where it is desired.
- Hit "Save"
- Repeat the process with the "View" to change the record view page for the model type.
Attachments and embedded media
All my embedded images are broken!
The first thing you should double-check is whether, in "Public Info Settings", the public web root / base URI[[wikipedia:Uniform Resource Identifier]]: The part of a URL that identifies the resource on the server to be accessed. In the context of the API, this refers to the relative path within the web server based in the web root of X2Engine, i.e. ''index.php/api2/Contacts/324.json'' as opposed to the full URL, which begins with the protocol (i.e. "http") and might also contain a path relative to the web site's document root are set.
If they are not, and you access your CRM at a non-public URL, the image links will be generated such that they point to that inaccessible URL. Thus, the images will naturally be broken. This is what the public info settings options were meant to address. In order for campaigns to work properly, there must be some way of publicly accessing the CRM from the web. This is so that, among many things, the "unsubscribe" link works (the user is essentially visiting a page in the CRM that unsubscribes them).
This happens all the time in GMail because GMail tries to access and cache images. Google's servers won't be able to access them on account of Google not dwelling within your subnet, so naturally, all images with non-public URLs will show up broken regardless of whether you are inside the subnet.