This section describes exactly how xFlow places new members into the downline. Regardless of the program structure, xFlow goes through the same basic steps.
- Gather a list of program structures to add the member to. This is done by the software checking the member type, and seeing which program structures have been checked to add the member to. If needed, the member will also be scheduled to be added to the sponsor's default program structure, if the member isn't already, unless you specifically stated for this not to happen during First Time Setup.
xFlow will go through every program, and complete the following steps:
- The direct sponsor is determined. This is always the sponsor, who the member joined under, unless it's a X-Up program structure. If an X-Up program structure, the software will check qualifying members as needed, and determine the correct direct sponsor.
- Using the direct sponsor, the software determines the upline for the new member. If it's a network (unlimited width) program, the software simple takes the direct sponsor's upline, and uses that. However, if it's a forced matrix program, the software will search the matrix for the next available spot, as explained below.
- A blank downline position is added to the program structure, for the new member.
- The newly created downline position is updated with the member's upline. While doing this, any needed geneology triggers are executed.
- If needed, all commission transactions are processed.
7.3.1 Searching the Matrix
If a member is being added to a forced matrix, the software must first search the matrix, and find the next empty spot. xFlow places all spillover equally, throughout the matrix, instead of giving all spillover to the left most members. The members with the smallest first level downline are always favored.
When the matrix is searched, the software starts at the direct sponsor, and will check for an empty spot in the first level downline. If there is no empty spot, the software will take the direct sponsor's first level downline, and check their first level downline for empty spots, at the same time. Next, the software will check the first level downline of all the first level downline members, and so on. The software will continue checking for an empty spot on groups of members like this, until an empty spot has been found.
If more than one empty spot in a group is found, the software will favor the member with the least number of members on their first level downline. If more than one member have the same lowest number of downline members, the software will favor the left most member.
Once a member has been found, who has an empty spot, the software will retrieve the member's upline. The software then goes through each upline member, and checks to ensure upline member has an open spot on the needed downline level. If at any time, an upline member does not have an empty spot, the software will stop, and drop the rest of the upline, to ensure the matrix never becomes corrupt.