The send object allows you to pass messages to receive objects that share the same name without patch cords. Send/receive pairs can be in the same or different patches, subpatches or even abstractions or bpatchers. The send object requires one argument, a name.
Send and receive are introduced in the Max Basic Tutorial 16: Remote Messaging.
send is so commonly used that it can be abbreviated as simply "s" with a name argument after.
Double-clicking a send or receive object will bring up a contextual window showing all other instances of sends or receives with the same name. Clicking on one of the menu items will bring the patcher window containing that instance to the front and highlight the object. If the object is contained within a subpatch, abstraction, or bpatcher, it will open the patcher and highlight the object. Furthermore, if the object is outside the viewable area of the patcher, it will adjust the view so you can see the highlighted object. This can be very helpful for quickly identifying where the data is going or to make sure that there is a named receive associated with the send.
There are many different ways to send data without patch cords. One drawback to the send object is that it can not have its name changed dynamically. For cases where you need to change the destination name, you can use the forward object, a message object, a pattrforward, or even a pack. This patch shows a few different ways to send data without patch cords.
By tagging data with an index number or symbol, you can send lots of commands through a single send/receive pair, which can help keep larger patches clean.
Also take a look in ./examples/max-tricks/send-receive-tricks:
(please list things that you believe to be errors or omissions from the existing refpage)